func()

in pkg/berglas/create.go [192:227]


func (c *Client) storageCreate(ctx context.Context, i *StorageCreateRequest) (*Secret, error) {
	bucket := i.Bucket
	if bucket == "" {
		return nil, fmt.Errorf("missing bucket name")
	}

	object := i.Object
	if object == "" {
		return nil, fmt.Errorf("missing object name")
	}

	key := i.Key
	if key == "" {
		return nil, fmt.Errorf("missing key name")
	}

	plaintext := i.Plaintext
	if plaintext == nil {
		return nil, fmt.Errorf("missing plaintext")
	}

	logger := logging.FromContext(ctx).With(
		"bucket", bucket,
		"object", object,
		"key", key,
	)

	logger.DebugContext(ctx, "create.start")
	defer logger.DebugContext(ctx, "create.finish")

	secret, err := c.encryptAndWrite(ctx, bucket, object, key, plaintext, 0, 0)
	if err != nil {
		return nil, fmt.Errorf("failed to create secret: %w", err)
	}
	return secret, nil
}