cosi

package module
v0.0.0-...-819f6d1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2025 License: Apache-2.0 Imports: 11 Imported by: 4

README

version

Container Object Storage Interface Spec

This repository hosts the gRPC API for the Container Object Storage Interface (COSI) standard. The interfaces defined in the gRPC specification are meant to be the common interface for object storage provisioning and management across various object storage vendors.

For more information about the COSI effort, visit our documentation.

Why another standard?

Kubernetes abstracts file/block storage via the CSI standard. The primitives for file/block storage do not extend well to object storage. Here is the extremely concise and incomplete list of reasons why:

  • Unit of provisioned storage - Bucket instead of filesystem mount or block device.
  • Access is over the network instead of local POSIX calls.
  • No common protocol for consumption across various implementations of object storage.
  • Management policies and primitives - for instance, mounting and unmounting do not apply to object storage.

The existing primitives in CSI do not apply to objectstorage. Thus the need for a new standard to automate the management of objectstorage.

Developer Guide

All API definitions MUST satisfy the following requirements:

Build and Test
  1. cosi.proto is generated from the specification defined in spec.md

  2. In order to update the API, make changes to spec.md. Then, generate cosi.proto using:

# generates cosi.proto
make generate
  1. Clean and Build
# cleans up old build files
make clobber
# builds the go bindings
make
  1. Do it all in 1 step:
# generates cosi.proto and builds the go bindings
make all

References

Community, discussion, contribution, and support

You can reach the maintainers of this project at:

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Documentation

Index

Constants

View Source
const (
	Provisioner_DriverCreateBucket_FullMethodName       = "/sigs.k8s.io.cosi.v1alpha2.Provisioner/DriverCreateBucket"
	Provisioner_DriverGetExistingBucket_FullMethodName  = "/sigs.k8s.io.cosi.v1alpha2.Provisioner/DriverGetExistingBucket"
	Provisioner_DriverDeleteBucket_FullMethodName       = "/sigs.k8s.io.cosi.v1alpha2.Provisioner/DriverDeleteBucket"
	Provisioner_DriverGrantBucketAccess_FullMethodName  = "/sigs.k8s.io.cosi.v1alpha2.Provisioner/DriverGrantBucketAccess"
	Provisioner_DriverRevokeBucketAccess_FullMethodName = "/sigs.k8s.io.cosi.v1alpha2.Provisioner/DriverRevokeBucketAccess"
)
View Source
const (
	Identity_DriverGetInfo_FullMethodName = "/sigs.k8s.io.cosi.v1alpha2.Identity/DriverGetInfo"
)

Variables

View Source
var (
	ObjectProtocol_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "S3",
		2: "AZURE",
		3: "GCS",
	}
	ObjectProtocol_Type_value = map[string]int32{
		"UNKNOWN": 0,
		"S3":      1,
		"AZURE":   2,
		"GCS":     3,
	}
)

Enum value maps for ObjectProtocol_Type.

View Source
var (
	S3AddressingStyle_Style_name = map[int32]string{
		0: "UNKNOWN",
		1: "PATH",
		2: "VIRTUAL",
	}
	S3AddressingStyle_Style_value = map[string]int32{
		"UNKNOWN": 0,
		"PATH":    1,
		"VIRTUAL": 2,
	}
)

Enum value maps for S3AddressingStyle_Style.

View Source
var (
	AuthenticationType_Type_name = map[int32]string{
		0: "UNKNOWN",
		1: "KEY",
		2: "SERVICE_ACCOUNT",
	}
	AuthenticationType_Type_value = map[string]int32{
		"UNKNOWN":         0,
		"KEY":             1,
		"SERVICE_ACCOUNT": 2,
	}
)

Enum value maps for AuthenticationType_Type.

View Source
var (
	AccessMode_Mode_name = map[int32]string{
		0: "UNKNOWN",
		1: "READ_WRITE",
		2: "READ_ONLY",
		3: "WRITE_ONLY",
	}
	AccessMode_Mode_value = map[string]int32{
		"UNKNOWN":    0,
		"READ_WRITE": 1,
		"READ_ONLY":  2,
		"WRITE_ONLY": 3,
	}
)

Enum value maps for AccessMode_Mode.

View Source
var (
	// Indicates that a field MAY contain information that is sensitive
	// and MUST be treated as such (e.g. not logged).
	//
	// optional bool cosi_secret = 1115;
	E_CosiSecret = &file_cosi_proto_extTypes[2]
	// Indicates that this field is OPTIONAL and part of an experimental
	// API that may be deprecated and eventually removed between minor
	// releases.
	//
	// optional bool alpha_field = 1116;
	E_AlphaField = &file_cosi_proto_extTypes[3]
)

Extension fields to descriptorpb.FieldOptions.

View Source
var (
	// Indicates that this enum is OPTIONAL and part of an experimental
	// API that may be deprecated and eventually removed between minor
	// releases.
	//
	// optional bool alpha_enum = 1116;
	E_AlphaEnum = &file_cosi_proto_extTypes[0]
)

Extension fields to descriptorpb.EnumOptions.

View Source
var (
	// Indicates that this enum value is OPTIONAL and part of an
	// experimental API that may be deprecated and eventually removed
	// between minor releases.
	//
	// optional bool alpha_enum_value = 1116;
	E_AlphaEnumValue = &file_cosi_proto_extTypes[1]
)

Extension fields to descriptorpb.EnumValueOptions.

View Source
var (
	// Indicates that this message is OPTIONAL and part of an experimental
	// API that may be deprecated and eventually removed between minor
	// releases.
	//
	// optional bool alpha_message = 1116;
	E_AlphaMessage = &file_cosi_proto_extTypes[4]
)

Extension fields to descriptorpb.MessageOptions.

View Source
var (
	// Indicates that this method is OPTIONAL and part of an experimental
	// API that may be deprecated and eventually removed between minor
	// releases.
	//
	// optional bool alpha_method = 1116;
	E_AlphaMethod = &file_cosi_proto_extTypes[5]
)

Extension fields to descriptorpb.MethodOptions.

View Source
var (
	// Indicates that this service is OPTIONAL and part of an experimental
	// API that may be deprecated and eventually removed between minor
	// releases.
	//
	// optional bool alpha_service = 1116;
	E_AlphaService = &file_cosi_proto_extTypes[6]
)

Extension fields to descriptorpb.ServiceOptions.

View Source
var Identity_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "sigs.k8s.io.cosi.v1alpha2.Identity",
	HandlerType: (*IdentityServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "DriverGetInfo",
			Handler:    _Identity_DriverGetInfo_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "cosi.proto",
}

Identity_ServiceDesc is the grpc.ServiceDesc for Identity service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

View Source
var Provisioner_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "sigs.k8s.io.cosi.v1alpha2.Provisioner",
	HandlerType: (*ProvisionerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "DriverCreateBucket",
			Handler:    _Provisioner_DriverCreateBucket_Handler,
		},
		{
			MethodName: "DriverGetExistingBucket",
			Handler:    _Provisioner_DriverGetExistingBucket_Handler,
		},
		{
			MethodName: "DriverDeleteBucket",
			Handler:    _Provisioner_DriverDeleteBucket_Handler,
		},
		{
			MethodName: "DriverGrantBucketAccess",
			Handler:    _Provisioner_DriverGrantBucketAccess_Handler,
		},
		{
			MethodName: "DriverRevokeBucketAccess",
			Handler:    _Provisioner_DriverRevokeBucketAccess_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "cosi.proto",
}

Provisioner_ServiceDesc is the grpc.ServiceDesc for Provisioner service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)

Functions

func RegisterIdentityServer

func RegisterIdentityServer(s grpc.ServiceRegistrar, srv IdentityServer)

func RegisterProvisionerServer

func RegisterProvisionerServer(s grpc.ServiceRegistrar, srv ProvisionerServer)

Types

type AccessMode

type AccessMode struct {
	// contains filtered or unexported fields
}

func (*AccessMode) Descriptor deprecated

func (*AccessMode) Descriptor() ([]byte, []int)

Deprecated: Use AccessMode.ProtoReflect.Descriptor instead.

func (*AccessMode) MarshalJSON

func (msg *AccessMode) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*AccessMode) ProtoMessage

func (*AccessMode) ProtoMessage()

func (*AccessMode) ProtoReflect

func (x *AccessMode) ProtoReflect() protoreflect.Message

func (*AccessMode) Reset

func (x *AccessMode) Reset()

func (*AccessMode) String

func (x *AccessMode) String() string

func (*AccessMode) UnmarshalJSON

func (msg *AccessMode) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type AccessMode_Mode

type AccessMode_Mode int32
const (
	AccessMode_UNKNOWN AccessMode_Mode = 0
	// Read/Write access mode.
	AccessMode_READ_WRITE AccessMode_Mode = 1
	// Read-only access mode.
	AccessMode_READ_ONLY AccessMode_Mode = 2
	// Write-only access mode.
	AccessMode_WRITE_ONLY AccessMode_Mode = 3
)

func (AccessMode_Mode) Descriptor

func (AccessMode_Mode) Enum

func (x AccessMode_Mode) Enum() *AccessMode_Mode

func (AccessMode_Mode) EnumDescriptor deprecated

func (AccessMode_Mode) EnumDescriptor() ([]byte, []int)

Deprecated: Use AccessMode_Mode.Descriptor instead.

func (AccessMode_Mode) Number

func (AccessMode_Mode) String

func (x AccessMode_Mode) String() string

func (AccessMode_Mode) Type

type AuthenticationType

type AuthenticationType struct {
	Type AuthenticationType_Type `protobuf:"varint,1,opt,name=type,proto3,enum=sigs.k8s.io.cosi.v1alpha2.AuthenticationType_Type" json:"type,omitempty"`
	// contains filtered or unexported fields
}

func (*AuthenticationType) Descriptor deprecated

func (*AuthenticationType) Descriptor() ([]byte, []int)

Deprecated: Use AuthenticationType.ProtoReflect.Descriptor instead.

func (*AuthenticationType) GetType

func (*AuthenticationType) MarshalJSON

func (msg *AuthenticationType) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*AuthenticationType) ProtoMessage

func (*AuthenticationType) ProtoMessage()

func (*AuthenticationType) ProtoReflect

func (x *AuthenticationType) ProtoReflect() protoreflect.Message

func (*AuthenticationType) Reset

func (x *AuthenticationType) Reset()

func (*AuthenticationType) String

func (x *AuthenticationType) String() string

func (*AuthenticationType) UnmarshalJSON

func (msg *AuthenticationType) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type AuthenticationType_Type

type AuthenticationType_Type int32
const (
	AuthenticationType_UNKNOWN AuthenticationType_Type = 0
	// The Provisioner should generate a protocol-appropriate access key that clients can use to
	// authenticate to the backend object store.
	AuthenticationType_KEY AuthenticationType_Type = 1
	// The Provisioner should configure the system such that Pods using the given ServiceAccount
	// authenticate to the backend object store automatically.
	AuthenticationType_SERVICE_ACCOUNT AuthenticationType_Type = 2
)

func (AuthenticationType_Type) Descriptor

func (AuthenticationType_Type) Enum

func (AuthenticationType_Type) EnumDescriptor deprecated

func (AuthenticationType_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use AuthenticationType_Type.Descriptor instead.

func (AuthenticationType_Type) Number

func (AuthenticationType_Type) String

func (x AuthenticationType_Type) String() string

func (AuthenticationType_Type) Type

type AzureBucketInfo

type AzureBucketInfo struct {

	// ID of the Azure storage account.
	StorageAccount string `protobuf:"bytes,1,opt,name=storage_account,json=storageAccount,proto3" json:"storage_account,omitempty"`
	// contains filtered or unexported fields
}

func (*AzureBucketInfo) Descriptor deprecated

func (*AzureBucketInfo) Descriptor() ([]byte, []int)

Deprecated: Use AzureBucketInfo.ProtoReflect.Descriptor instead.

func (*AzureBucketInfo) GetStorageAccount

func (x *AzureBucketInfo) GetStorageAccount() string

func (*AzureBucketInfo) MarshalJSON

func (msg *AzureBucketInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*AzureBucketInfo) ProtoMessage

func (*AzureBucketInfo) ProtoMessage()

func (*AzureBucketInfo) ProtoReflect

func (x *AzureBucketInfo) ProtoReflect() protoreflect.Message

func (*AzureBucketInfo) Reset

func (x *AzureBucketInfo) Reset()

func (*AzureBucketInfo) String

func (x *AzureBucketInfo) String() string

func (*AzureBucketInfo) UnmarshalJSON

func (msg *AzureBucketInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type AzureCredentialInfo

type AzureCredentialInfo struct {

	// Azure access token.
	// Note that the Azure spec includes the resource URI as well as token in its definition.
	// https://learn.microsoft.com/en-us/azure/storage/common/media/storage-sas-overview/sas-storage-uri.svg
	AccessToken string `protobuf:"bytes,1,opt,name=access_token,json=accessToken,proto3" json:"access_token,omitempty"`
	// Expiry time of the access.
	// Empty if unset. Otherwise, date+time in ISO 8601 format.
	ExpiryTimestamp string `protobuf:"bytes,2,opt,name=expiry_timestamp,json=expiryTimestamp,proto3" json:"expiry_timestamp,omitempty"`
	// contains filtered or unexported fields
}

func (*AzureCredentialInfo) Descriptor deprecated

func (*AzureCredentialInfo) Descriptor() ([]byte, []int)

Deprecated: Use AzureCredentialInfo.ProtoReflect.Descriptor instead.

func (*AzureCredentialInfo) GetAccessToken

func (x *AzureCredentialInfo) GetAccessToken() string

func (*AzureCredentialInfo) GetExpiryTimestamp

func (x *AzureCredentialInfo) GetExpiryTimestamp() string

func (*AzureCredentialInfo) MarshalJSON

func (msg *AzureCredentialInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*AzureCredentialInfo) ProtoMessage

func (*AzureCredentialInfo) ProtoMessage()

func (*AzureCredentialInfo) ProtoReflect

func (x *AzureCredentialInfo) ProtoReflect() protoreflect.Message

func (*AzureCredentialInfo) Reset

func (x *AzureCredentialInfo) Reset()

func (*AzureCredentialInfo) String

func (x *AzureCredentialInfo) String() string

func (*AzureCredentialInfo) UnmarshalJSON

func (msg *AzureCredentialInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type CredentialInfo

type CredentialInfo struct {

	// Credential info for S3 protocol access.
	S3 *S3CredentialInfo `protobuf:"bytes,1,opt,name=s3,proto3" json:"s3,omitempty"`
	// Credential info for Azure (Blob) protocol access.
	Azure *AzureCredentialInfo `protobuf:"bytes,2,opt,name=azure,proto3" json:"azure,omitempty"`
	// Credential info for Google Cloud Storage protocol access.
	Gcs *GcsCredentialInfo `protobuf:"bytes,3,opt,name=gcs,proto3" json:"gcs,omitempty"`
	// contains filtered or unexported fields
}

Credential info for the backend access corresponding to each protocol. If a protocol is not supported, the message MUST be empty/nil.

func (*CredentialInfo) Descriptor deprecated

func (*CredentialInfo) Descriptor() ([]byte, []int)

Deprecated: Use CredentialInfo.ProtoReflect.Descriptor instead.

func (*CredentialInfo) GetAzure

func (x *CredentialInfo) GetAzure() *AzureCredentialInfo

func (*CredentialInfo) GetGcs

func (x *CredentialInfo) GetGcs() *GcsCredentialInfo

func (*CredentialInfo) GetS3

func (x *CredentialInfo) GetS3() *S3CredentialInfo

func (*CredentialInfo) MarshalJSON

func (msg *CredentialInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*CredentialInfo) ProtoMessage

func (*CredentialInfo) ProtoMessage()

func (*CredentialInfo) ProtoReflect

func (x *CredentialInfo) ProtoReflect() protoreflect.Message

func (*CredentialInfo) Reset

func (x *CredentialInfo) Reset()

func (*CredentialInfo) String

func (x *CredentialInfo) String() string

func (*CredentialInfo) UnmarshalJSON

func (msg *CredentialInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverCreateBucketRequest

type DriverCreateBucketRequest struct {

	// REQUIRED. The suggested name for the backend bucket.
	// It serves two purposes:
	//  1. Suggested name - COSI WILL suggest a name that includes a UID component that is
	//     statistically likely to be globally unique.
	//  2. Idempotency - This name is generated by COSI to achieve idempotency. The Plugin SHOULD
	//     ensure that multiple DriverCreateBucket calls for the same name do not result in more
	//     than one Bucket being provisioned corresponding to the name.
	//     The COSI Sidecar WILL call DriverCreateBucket, with the same name, periodically to ensure
	//     the bucket exists.
	//     Using or appending random identifiers can lead to multiple unused buckets being created in
	//     the storage backend in the event of timing-related Driver/Sidecar failures or restarts.
	//
	// COSI WILL use DNS subdomain format (https://datatracker.ietf.org/doc/html/rfc1123).
	// It WILL contain contain no more than 253 characters, contain only lowercase alphanumeric
	// characters, '-' or '.', start with an alphanumeric character, and end with an alphanumeric
	// character.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// OPTIONAL. A list of all object storage protocols the provisioned bucket MUST support.
	// If none are given, the provisioner MAY provision with a set of default protocol(s) or return
	// `InvalidArgument` with a message indicating that it requires this input.
	// If any protocol cannot be supported, the Provisioner MUST return `InvalidArgument`.
	Protocols []*ObjectProtocol `protobuf:"bytes,2,rep,name=protocols,proto3" json:"protocols,omitempty"`
	// OPTIONAL. Plugin specific parameters passed in as opaque key-value pairs.
	// The Plugin is responsible for parsing and validating these parameters.
	Parameters map[string]string `` /* 147-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*DriverCreateBucketRequest) Descriptor deprecated

func (*DriverCreateBucketRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverCreateBucketRequest.ProtoReflect.Descriptor instead.

func (*DriverCreateBucketRequest) GetName

func (x *DriverCreateBucketRequest) GetName() string

func (*DriverCreateBucketRequest) GetParameters

func (x *DriverCreateBucketRequest) GetParameters() map[string]string

func (*DriverCreateBucketRequest) GetProtocols

func (x *DriverCreateBucketRequest) GetProtocols() []*ObjectProtocol

func (*DriverCreateBucketRequest) MarshalJSON

func (msg *DriverCreateBucketRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverCreateBucketRequest) ProtoMessage

func (*DriverCreateBucketRequest) ProtoMessage()

func (*DriverCreateBucketRequest) ProtoReflect

func (*DriverCreateBucketRequest) Reset

func (x *DriverCreateBucketRequest) Reset()

func (*DriverCreateBucketRequest) String

func (x *DriverCreateBucketRequest) String() string

func (*DriverCreateBucketRequest) UnmarshalJSON

func (msg *DriverCreateBucketRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverCreateBucketResponse

type DriverCreateBucketResponse struct {

	// REQUIRED. The unique identifier for the backend bucket known to the Provisioner.
	// This value WILL be used by COSI to make subsequent calls related to the bucket, so the
	// Provisioner MUST be able to correlate `bucket_id` to the backend bucket.
	// It is RECOMMENDED to use the backend storage system's bucket ID.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// REQUIRED: At least one protocol bucket info result MUST be non-nil.
	//
	// The primary purpose of this response is to indicate which protocols are supported for
	// subsequent DriverGrantBucketAccess requests referencing this provisioned bucket. A non-nil
	// bucket info corresponding to a protocol indicates support.
	//
	// The Provisioner MUST indicate support for the protocols in the request. It MAY indicate
	// support for more protocols than the request. It SHOULD indicate support for all supported
	// protocols. It MUST NOT indicate support (return a non-nil result) for unsupported protocols.
	//
	// The secondary purpose of this response is to report non-credential information about the
	// bucket. COSI does not expose this information to end-users until a subsequent
	// DriverGrantBucketAccess is provisioned referencing this bucket. Instead, the info is exposed
	// to administrators so that they might more easily debug errors in their configuration of COSI.
	// It is thus RECOMMENDED to return all relevant bucket info for all supported protocols.
	// However, the Provisioner MAY omit any or all bucket info fields as desired.
	Protocols *ObjectProtocolAndBucketInfo `protobuf:"bytes,2,opt,name=protocols,proto3" json:"protocols,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverCreateBucketResponse) Descriptor deprecated

func (*DriverCreateBucketResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverCreateBucketResponse.ProtoReflect.Descriptor instead.

func (*DriverCreateBucketResponse) GetBucketId

func (x *DriverCreateBucketResponse) GetBucketId() string

func (*DriverCreateBucketResponse) GetProtocols

func (*DriverCreateBucketResponse) MarshalJSON

func (msg *DriverCreateBucketResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverCreateBucketResponse) ProtoMessage

func (*DriverCreateBucketResponse) ProtoMessage()

func (*DriverCreateBucketResponse) ProtoReflect

func (*DriverCreateBucketResponse) Reset

func (x *DriverCreateBucketResponse) Reset()

func (*DriverCreateBucketResponse) String

func (x *DriverCreateBucketResponse) String() string

func (*DriverCreateBucketResponse) UnmarshalJSON

func (msg *DriverCreateBucketResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverDeleteBucketRequest

type DriverDeleteBucketRequest struct {

	// REQUIRED. The unique identifier for the existing backend bucket known to the Provisioner.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// OPTIONAL. Plugin specific parameters associated with the provisioned bucket.
	Parameters map[string]string `` /* 147-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*DriverDeleteBucketRequest) Descriptor deprecated

func (*DriverDeleteBucketRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverDeleteBucketRequest.ProtoReflect.Descriptor instead.

func (*DriverDeleteBucketRequest) GetBucketId

func (x *DriverDeleteBucketRequest) GetBucketId() string

func (*DriverDeleteBucketRequest) GetParameters

func (x *DriverDeleteBucketRequest) GetParameters() map[string]string

func (*DriverDeleteBucketRequest) MarshalJSON

func (msg *DriverDeleteBucketRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverDeleteBucketRequest) ProtoMessage

func (*DriverDeleteBucketRequest) ProtoMessage()

func (*DriverDeleteBucketRequest) ProtoReflect

func (*DriverDeleteBucketRequest) Reset

func (x *DriverDeleteBucketRequest) Reset()

func (*DriverDeleteBucketRequest) String

func (x *DriverDeleteBucketRequest) String() string

func (*DriverDeleteBucketRequest) UnmarshalJSON

func (msg *DriverDeleteBucketRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverDeleteBucketResponse

type DriverDeleteBucketResponse struct {
	// contains filtered or unexported fields
}

func (*DriverDeleteBucketResponse) Descriptor deprecated

func (*DriverDeleteBucketResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverDeleteBucketResponse.ProtoReflect.Descriptor instead.

func (*DriverDeleteBucketResponse) MarshalJSON

func (msg *DriverDeleteBucketResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverDeleteBucketResponse) ProtoMessage

func (*DriverDeleteBucketResponse) ProtoMessage()

func (*DriverDeleteBucketResponse) ProtoReflect

func (*DriverDeleteBucketResponse) Reset

func (x *DriverDeleteBucketResponse) Reset()

func (*DriverDeleteBucketResponse) String

func (x *DriverDeleteBucketResponse) String() string

func (*DriverDeleteBucketResponse) UnmarshalJSON

func (msg *DriverDeleteBucketResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGetExistingBucketRequest

type DriverGetExistingBucketRequest struct {

	// REQUIRED. The unique identifier for the existing backend bucket known to the Provisioner.
	// Provisioner MUST be able to correlate `bucket_id` to the backend bucket.
	// It is RECOMMENDED to use the backend storage system's bucket ID.
	ExistingBucketId string `protobuf:"bytes,1,opt,name=existing_bucket_id,json=existingBucketId,proto3" json:"existing_bucket_id,omitempty"`
	// OPTIONAL. A list of all object storage protocols the provisioned bucket MUST support.
	// If none are given, the provisioner MAY provision with a set of default protocol(s) or return
	// `InvalidArgument` with a message indicating that it requires this input.
	// If any protocol cannot be supported, the Provisioner MUST return `InvalidArgument`.
	Protocols []*ObjectProtocol `protobuf:"bytes,2,rep,name=protocols,proto3" json:"protocols,omitempty"`
	// OPTIONAL. Plugin specific parameters passed in as opaque key-value pairs.
	// The Plugin is responsible for parsing and validating these parameters.
	Parameters map[string]string `` /* 147-byte string literal not displayed */
	// contains filtered or unexported fields
}

func (*DriverGetExistingBucketRequest) Descriptor deprecated

func (*DriverGetExistingBucketRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverGetExistingBucketRequest.ProtoReflect.Descriptor instead.

func (*DriverGetExistingBucketRequest) GetExistingBucketId

func (x *DriverGetExistingBucketRequest) GetExistingBucketId() string

func (*DriverGetExistingBucketRequest) GetParameters

func (x *DriverGetExistingBucketRequest) GetParameters() map[string]string

func (*DriverGetExistingBucketRequest) GetProtocols

func (x *DriverGetExistingBucketRequest) GetProtocols() []*ObjectProtocol

func (*DriverGetExistingBucketRequest) MarshalJSON

func (msg *DriverGetExistingBucketRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGetExistingBucketRequest) ProtoMessage

func (*DriverGetExistingBucketRequest) ProtoMessage()

func (*DriverGetExistingBucketRequest) ProtoReflect

func (*DriverGetExistingBucketRequest) Reset

func (x *DriverGetExistingBucketRequest) Reset()

func (*DriverGetExistingBucketRequest) String

func (*DriverGetExistingBucketRequest) UnmarshalJSON

func (msg *DriverGetExistingBucketRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGetExistingBucketResponse

type DriverGetExistingBucketResponse struct {

	// REQUIRED. The unique identifier for the backend bucket known to the Provisioner.
	// This value WILL be used by COSI to make subsequent calls related to the bucket, so the
	// Provisioner MUST be able to correlate `bucket_id` to the backend bucket.
	// It is RECOMMENDED to use the backend storage system's bucket ID.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// REQUIRED: At least one protocol bucket info result MUST be non-nil.
	//
	// The primary purpose of this response is to indicate which protocols are supported for
	// subsequent DriverGrantBucketAccess requests referencing this provisioned bucket. A non-nil
	// bucket info corresponding to a protocol indicates support.
	//
	// The Provisioner MUST indicate support for the protocols in the request. It MAY indicate
	// support for more protocols than the request. It SHOULD indicate support for all supported
	// protocols. It MUST NOT indicate support (return a non-nil result) for unsupported protocols.
	//
	// The secondary purpose of this response is to report non-credential information about the
	// bucket. COSI does not expose this information to end-users until a subsequent
	// DriverGrantBucketAccess is provisioned referencing this bucket. Instead, the info is exposed
	// to administrators so that they might more easily debug errors in their configuration of COSI.
	// It is thus RECOMMENDED to return all relevant bucket info for all supported protocols.
	// However, the Provisioner MAY omit any or all bucket info fields as desired.
	Protocols *ObjectProtocolAndBucketInfo `protobuf:"bytes,2,opt,name=protocols,proto3" json:"protocols,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGetExistingBucketResponse) Descriptor deprecated

func (*DriverGetExistingBucketResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverGetExistingBucketResponse.ProtoReflect.Descriptor instead.

func (*DriverGetExistingBucketResponse) GetBucketId

func (x *DriverGetExistingBucketResponse) GetBucketId() string

func (*DriverGetExistingBucketResponse) GetProtocols

func (*DriverGetExistingBucketResponse) MarshalJSON

func (msg *DriverGetExistingBucketResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGetExistingBucketResponse) ProtoMessage

func (*DriverGetExistingBucketResponse) ProtoMessage()

func (*DriverGetExistingBucketResponse) ProtoReflect

func (*DriverGetExistingBucketResponse) Reset

func (*DriverGetExistingBucketResponse) String

func (*DriverGetExistingBucketResponse) UnmarshalJSON

func (msg *DriverGetExistingBucketResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGetInfoRequest

type DriverGetInfoRequest struct {
	// contains filtered or unexported fields
}

func (*DriverGetInfoRequest) Descriptor deprecated

func (*DriverGetInfoRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverGetInfoRequest.ProtoReflect.Descriptor instead.

func (*DriverGetInfoRequest) MarshalJSON

func (msg *DriverGetInfoRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGetInfoRequest) ProtoMessage

func (*DriverGetInfoRequest) ProtoMessage()

func (*DriverGetInfoRequest) ProtoReflect

func (x *DriverGetInfoRequest) ProtoReflect() protoreflect.Message

func (*DriverGetInfoRequest) Reset

func (x *DriverGetInfoRequest) Reset()

func (*DriverGetInfoRequest) String

func (x *DriverGetInfoRequest) String() string

func (*DriverGetInfoRequest) UnmarshalJSON

func (msg *DriverGetInfoRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGetInfoResponse

type DriverGetInfoResponse struct {

	// REQUIRED. The unique name of the driver.
	// The name MUST follow domain name notation format
	// (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD
	// include the plugin's host company name and the plugin name,
	// to minimize the possibility of collisions. It MUST be 63
	// characters or less, beginning and ending with an alphanumeric
	// character ([a-z0-9A-Z]) with dashes (-), dots (.), and
	// alphanumerics between.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A list of all object storage protocols supported by the driver.
	// At least one protocol is REQUIRED.
	SupportedProtocols []*ObjectProtocol `protobuf:"bytes,2,rep,name=supported_protocols,json=supportedProtocols,proto3" json:"supported_protocols,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGetInfoResponse) Descriptor deprecated

func (*DriverGetInfoResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverGetInfoResponse.ProtoReflect.Descriptor instead.

func (*DriverGetInfoResponse) GetName

func (x *DriverGetInfoResponse) GetName() string

func (*DriverGetInfoResponse) GetSupportedProtocols

func (x *DriverGetInfoResponse) GetSupportedProtocols() []*ObjectProtocol

func (*DriverGetInfoResponse) MarshalJSON

func (msg *DriverGetInfoResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGetInfoResponse) ProtoMessage

func (*DriverGetInfoResponse) ProtoMessage()

func (*DriverGetInfoResponse) ProtoReflect

func (x *DriverGetInfoResponse) ProtoReflect() protoreflect.Message

func (*DriverGetInfoResponse) Reset

func (x *DriverGetInfoResponse) Reset()

func (*DriverGetInfoResponse) String

func (x *DriverGetInfoResponse) String() string

func (*DriverGetInfoResponse) UnmarshalJSON

func (msg *DriverGetInfoResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGrantBucketAccessRequest

type DriverGrantBucketAccessRequest struct {

	// REQUIRED. The suggested name for the backend bucket access.
	// It serves two purposes:
	//  1. Suggested name - COSI WILL suggest a name that includes a UID component that is
	//     statistically likely to be globally unique.
	//  2. Idempotency - This name is generated by COSI to achieve idempotency. The Plugin SHOULD
	//     ensure that multiple DriverGrantBucketAccess calls for the same name do not result in more
	//     than one Bucket being provisioned corresponding to the name.
	//     The COSI Sidecar WILL call DriverGrantBucketAccess, with the same name, periodically to
	//     ensure the bucket exists.
	//     Using or appending random identifiers can lead to multiple unused buckets being created in
	//     the storage backend in the event of timing-related Driver/Sidecar failures or restarts.
	//
	// COSI WILL use DNS subdomain format (https://datatracker.ietf.org/doc/html/rfc1123).
	// It WILL contain contain no more than 253 characters, contain only lowercase alphanumeric
	// characters, '-' or '.', start with an alphanumeric character, and end with an alphanumeric
	// character.
	AccountName string `protobuf:"bytes,1,opt,name=account_name,json=accountName,proto3" json:"account_name,omitempty"`
	// REQUIRED. The object storage protocol the provisioned access MUST support.
	// If the protocol cannot be supported, the Provisioner MUST return `InvalidArgument`.
	Protocol *ObjectProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"`
	// REQUIRED. The authentication type that the Provisioner MUST provision for this request.
	AuthenticationType *AuthenticationType `protobuf:"bytes,3,opt,name=authentication_type,json=authenticationType,proto3" json:"authentication_type,omitempty"`
	// REQUIRED when `authentication_type` is `SERVICE_ACCOUNT`.
	// OPTIONAL for all other authentication types.
	// COSI WILL NOT set this when the requested `authentication_type` is not `SERVICE_ACCOUNT`.
	ServiceAccountName string `protobuf:"bytes,4,opt,name=service_account_name,json=serviceAccountName,proto3" json:"service_account_name,omitempty"`
	// OPTIONAL. Plugin specific parameters passed in as opaque key-value pairs.
	// The Plugin is responsible for parsing and validating these parameters.
	Parameters map[string]string `` /* 147-byte string literal not displayed */
	// REQUIRED. Access to at least one bucket MUST be requested.
	Buckets []*DriverGrantBucketAccessRequest_AccessedBucket `protobuf:"bytes,6,rep,name=buckets,proto3" json:"buckets,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGrantBucketAccessRequest) Descriptor deprecated

func (*DriverGrantBucketAccessRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverGrantBucketAccessRequest.ProtoReflect.Descriptor instead.

func (*DriverGrantBucketAccessRequest) GetAccountName

func (x *DriverGrantBucketAccessRequest) GetAccountName() string

func (*DriverGrantBucketAccessRequest) GetAuthenticationType

func (x *DriverGrantBucketAccessRequest) GetAuthenticationType() *AuthenticationType

func (*DriverGrantBucketAccessRequest) GetBuckets

func (*DriverGrantBucketAccessRequest) GetParameters

func (x *DriverGrantBucketAccessRequest) GetParameters() map[string]string

func (*DriverGrantBucketAccessRequest) GetProtocol

func (*DriverGrantBucketAccessRequest) GetServiceAccountName

func (x *DriverGrantBucketAccessRequest) GetServiceAccountName() string

func (*DriverGrantBucketAccessRequest) MarshalJSON

func (msg *DriverGrantBucketAccessRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGrantBucketAccessRequest) ProtoMessage

func (*DriverGrantBucketAccessRequest) ProtoMessage()

func (*DriverGrantBucketAccessRequest) ProtoReflect

func (*DriverGrantBucketAccessRequest) Reset

func (x *DriverGrantBucketAccessRequest) Reset()

func (*DriverGrantBucketAccessRequest) String

func (*DriverGrantBucketAccessRequest) UnmarshalJSON

func (msg *DriverGrantBucketAccessRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGrantBucketAccessRequest_AccessedBucket

type DriverGrantBucketAccessRequest_AccessedBucket struct {

	// REQUIRED. The unique identifier for the backend bucket known to the Provisioner.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// REQUIRED. The read/write access mode that the Provisioner SHOULD provision for the bucket
	// associated with `bucket_id`.
	AccessMode *AccessMode `protobuf:"bytes,2,opt,name=access_mode,json=accessMode,proto3" json:"access_mode,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGrantBucketAccessRequest_AccessedBucket) Descriptor deprecated

Deprecated: Use DriverGrantBucketAccessRequest_AccessedBucket.ProtoReflect.Descriptor instead.

func (*DriverGrantBucketAccessRequest_AccessedBucket) GetAccessMode

func (*DriverGrantBucketAccessRequest_AccessedBucket) GetBucketId

func (*DriverGrantBucketAccessRequest_AccessedBucket) MarshalJSON

MarshalJSON implements json.Marshaler

func (*DriverGrantBucketAccessRequest_AccessedBucket) ProtoMessage

func (*DriverGrantBucketAccessRequest_AccessedBucket) ProtoReflect

func (*DriverGrantBucketAccessRequest_AccessedBucket) Reset

func (*DriverGrantBucketAccessRequest_AccessedBucket) String

func (*DriverGrantBucketAccessRequest_AccessedBucket) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler

type DriverGrantBucketAccessResponse

type DriverGrantBucketAccessResponse struct {

	// REQUIRED. The unique identifier for the backend access account known to the Provisioner.
	// This value WILL be used by COSI to make subsequent calls related to the access, so the
	// Provisioner MUST be able to correlate `account_id` to the backend access.
	// It is RECOMMENDED to use the backend storage system's bucket ID.
	AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	// REQUIRED. The Provisioner MUST return info for all `buckets` in the request.
	Buckets []*DriverGrantBucketAccessResponse_BucketInfo `protobuf:"bytes,2,rep,name=buckets,proto3" json:"buckets,omitempty"`
	// REQUIRED.
	Credentials *CredentialInfo `protobuf:"bytes,3,opt,name=credentials,proto3" json:"credentials,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGrantBucketAccessResponse) Descriptor deprecated

func (*DriverGrantBucketAccessResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverGrantBucketAccessResponse.ProtoReflect.Descriptor instead.

func (*DriverGrantBucketAccessResponse) GetAccountId

func (x *DriverGrantBucketAccessResponse) GetAccountId() string

func (*DriverGrantBucketAccessResponse) GetBuckets

func (*DriverGrantBucketAccessResponse) GetCredentials

func (x *DriverGrantBucketAccessResponse) GetCredentials() *CredentialInfo

func (*DriverGrantBucketAccessResponse) MarshalJSON

func (msg *DriverGrantBucketAccessResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGrantBucketAccessResponse) ProtoMessage

func (*DriverGrantBucketAccessResponse) ProtoMessage()

func (*DriverGrantBucketAccessResponse) ProtoReflect

func (*DriverGrantBucketAccessResponse) Reset

func (*DriverGrantBucketAccessResponse) String

func (*DriverGrantBucketAccessResponse) UnmarshalJSON

func (msg *DriverGrantBucketAccessResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverGrantBucketAccessResponse_BucketInfo

type DriverGrantBucketAccessResponse_BucketInfo struct {

	// REQUIRED. The unique identifier for the backend bucket known to the Provisioner.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// REQUIRED: EXACTLY one protocol bucket info result MUST be non-nil.
	// The Provisioner MUST fill in all required bucket info for the requested protocol.
	// The Provisioner SHOULD fill in as much bucket info as is known given the parameters.
	// It MUST NOT support (return a non-nil result) non-requested protocols.
	// COSI WILL expose this information to users, and it WILL be treated as sensitive/secret
	// information.
	// COSI WILL not log the information or store it in plaintext.
	BucketInfo *ObjectProtocolAndBucketInfo `protobuf:"bytes,2,opt,name=bucket_info,json=bucketInfo,proto3" json:"bucket_info,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverGrantBucketAccessResponse_BucketInfo) Descriptor deprecated

Deprecated: Use DriverGrantBucketAccessResponse_BucketInfo.ProtoReflect.Descriptor instead.

func (*DriverGrantBucketAccessResponse_BucketInfo) GetBucketId

func (*DriverGrantBucketAccessResponse_BucketInfo) GetBucketInfo

func (*DriverGrantBucketAccessResponse_BucketInfo) MarshalJSON

func (msg *DriverGrantBucketAccessResponse_BucketInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverGrantBucketAccessResponse_BucketInfo) ProtoMessage

func (*DriverGrantBucketAccessResponse_BucketInfo) ProtoReflect

func (*DriverGrantBucketAccessResponse_BucketInfo) Reset

func (*DriverGrantBucketAccessResponse_BucketInfo) String

func (*DriverGrantBucketAccessResponse_BucketInfo) UnmarshalJSON

func (msg *DriverGrantBucketAccessResponse_BucketInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverRevokeBucketAccessRequest

type DriverRevokeBucketAccessRequest struct {

	// REQUIRED. The unique identifier for the backend access account
	AccountId string `protobuf:"bytes,1,opt,name=account_id,json=accountId,proto3" json:"account_id,omitempty"`
	// REQUIRED. The object storage protocol associated with the provisioned access.
	Protocol *ObjectProtocol `protobuf:"bytes,2,opt,name=protocol,proto3" json:"protocol,omitempty"`
	// REQUIRED. The authentication type associated with the provisioned access.
	AuthenticationType *AuthenticationType `protobuf:"bytes,3,opt,name=authentication_type,json=authenticationType,proto3" json:"authentication_type,omitempty"`
	// REQUIRED when `authentication_type` is `SERVICE_ACCOUNT`.
	// OPTIONAL for all other authentication types.
	// COSI WILL NOT set this when the requested `authentication_type` is not `SERVICE_ACCOUNT`.
	ServiceAccountName string `protobuf:"bytes,4,opt,name=service_account_name,json=serviceAccountName,proto3" json:"service_account_name,omitempty"`
	// OPTIONAL. Plugin specific parameters associated with the provisioned access.
	Parameters map[string]string `` /* 147-byte string literal not displayed */
	// REQUIRED. Buckets associated with the provisioned access.
	Buckets []*DriverRevokeBucketAccessRequest_AccessedBucket `protobuf:"bytes,6,rep,name=buckets,proto3" json:"buckets,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverRevokeBucketAccessRequest) Descriptor deprecated

func (*DriverRevokeBucketAccessRequest) Descriptor() ([]byte, []int)

Deprecated: Use DriverRevokeBucketAccessRequest.ProtoReflect.Descriptor instead.

func (*DriverRevokeBucketAccessRequest) GetAccountId

func (x *DriverRevokeBucketAccessRequest) GetAccountId() string

func (*DriverRevokeBucketAccessRequest) GetAuthenticationType

func (x *DriverRevokeBucketAccessRequest) GetAuthenticationType() *AuthenticationType

func (*DriverRevokeBucketAccessRequest) GetBuckets

func (*DriverRevokeBucketAccessRequest) GetParameters

func (x *DriverRevokeBucketAccessRequest) GetParameters() map[string]string

func (*DriverRevokeBucketAccessRequest) GetProtocol

func (*DriverRevokeBucketAccessRequest) GetServiceAccountName

func (x *DriverRevokeBucketAccessRequest) GetServiceAccountName() string

func (*DriverRevokeBucketAccessRequest) MarshalJSON

func (msg *DriverRevokeBucketAccessRequest) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverRevokeBucketAccessRequest) ProtoMessage

func (*DriverRevokeBucketAccessRequest) ProtoMessage()

func (*DriverRevokeBucketAccessRequest) ProtoReflect

func (*DriverRevokeBucketAccessRequest) Reset

func (*DriverRevokeBucketAccessRequest) String

func (*DriverRevokeBucketAccessRequest) UnmarshalJSON

func (msg *DriverRevokeBucketAccessRequest) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type DriverRevokeBucketAccessRequest_AccessedBucket

type DriverRevokeBucketAccessRequest_AccessedBucket struct {

	// REQUIRED. The unique identifier for the backend bucket known to the Provisioner.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// contains filtered or unexported fields
}

func (*DriverRevokeBucketAccessRequest_AccessedBucket) Descriptor deprecated

Deprecated: Use DriverRevokeBucketAccessRequest_AccessedBucket.ProtoReflect.Descriptor instead.

func (*DriverRevokeBucketAccessRequest_AccessedBucket) GetBucketId

func (*DriverRevokeBucketAccessRequest_AccessedBucket) MarshalJSON

MarshalJSON implements json.Marshaler

func (*DriverRevokeBucketAccessRequest_AccessedBucket) ProtoMessage

func (*DriverRevokeBucketAccessRequest_AccessedBucket) ProtoReflect

func (*DriverRevokeBucketAccessRequest_AccessedBucket) Reset

func (*DriverRevokeBucketAccessRequest_AccessedBucket) String

func (*DriverRevokeBucketAccessRequest_AccessedBucket) UnmarshalJSON

UnmarshalJSON implements json.Unmarshaler

type DriverRevokeBucketAccessResponse

type DriverRevokeBucketAccessResponse struct {
	// contains filtered or unexported fields
}

func (*DriverRevokeBucketAccessResponse) Descriptor deprecated

func (*DriverRevokeBucketAccessResponse) Descriptor() ([]byte, []int)

Deprecated: Use DriverRevokeBucketAccessResponse.ProtoReflect.Descriptor instead.

func (*DriverRevokeBucketAccessResponse) MarshalJSON

func (msg *DriverRevokeBucketAccessResponse) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*DriverRevokeBucketAccessResponse) ProtoMessage

func (*DriverRevokeBucketAccessResponse) ProtoMessage()

func (*DriverRevokeBucketAccessResponse) ProtoReflect

func (*DriverRevokeBucketAccessResponse) Reset

func (*DriverRevokeBucketAccessResponse) String

func (*DriverRevokeBucketAccessResponse) UnmarshalJSON

func (msg *DriverRevokeBucketAccessResponse) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type GcsBucketInfo

type GcsBucketInfo struct {

	// GCS project ID.
	ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"`
	// GCS bucket name needed for client access.
	BucketName string `protobuf:"bytes,2,opt,name=bucket_name,json=bucketName,proto3" json:"bucket_name,omitempty"`
	// contains filtered or unexported fields
}

func (*GcsBucketInfo) Descriptor deprecated

func (*GcsBucketInfo) Descriptor() ([]byte, []int)

Deprecated: Use GcsBucketInfo.ProtoReflect.Descriptor instead.

func (*GcsBucketInfo) GetBucketName

func (x *GcsBucketInfo) GetBucketName() string

func (*GcsBucketInfo) GetProjectId

func (x *GcsBucketInfo) GetProjectId() string

func (*GcsBucketInfo) MarshalJSON

func (msg *GcsBucketInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*GcsBucketInfo) ProtoMessage

func (*GcsBucketInfo) ProtoMessage()

func (*GcsBucketInfo) ProtoReflect

func (x *GcsBucketInfo) ProtoReflect() protoreflect.Message

func (*GcsBucketInfo) Reset

func (x *GcsBucketInfo) Reset()

func (*GcsBucketInfo) String

func (x *GcsBucketInfo) String() string

func (*GcsBucketInfo) UnmarshalJSON

func (msg *GcsBucketInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type GcsCredentialInfo

type GcsCredentialInfo struct {

	// HMAC access ID.
	AccessId string `protobuf:"bytes,1,opt,name=access_id,json=accessId,proto3" json:"access_id,omitempty"`
	// HMAC secret.
	AccessSecret string `protobuf:"bytes,2,opt,name=access_secret,json=accessSecret,proto3" json:"access_secret,omitempty"`
	// GCS private key name.
	PrivateKeyName string `protobuf:"bytes,3,opt,name=private_key_name,json=privateKeyName,proto3" json:"private_key_name,omitempty"`
	// GCS service account name.
	ServiceAccount string `protobuf:"bytes,4,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
	// contains filtered or unexported fields
}

func (*GcsCredentialInfo) Descriptor deprecated

func (*GcsCredentialInfo) Descriptor() ([]byte, []int)

Deprecated: Use GcsCredentialInfo.ProtoReflect.Descriptor instead.

func (*GcsCredentialInfo) GetAccessId

func (x *GcsCredentialInfo) GetAccessId() string

func (*GcsCredentialInfo) GetAccessSecret

func (x *GcsCredentialInfo) GetAccessSecret() string

func (*GcsCredentialInfo) GetPrivateKeyName

func (x *GcsCredentialInfo) GetPrivateKeyName() string

func (*GcsCredentialInfo) GetServiceAccount

func (x *GcsCredentialInfo) GetServiceAccount() string

func (*GcsCredentialInfo) MarshalJSON

func (msg *GcsCredentialInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*GcsCredentialInfo) ProtoMessage

func (*GcsCredentialInfo) ProtoMessage()

func (*GcsCredentialInfo) ProtoReflect

func (x *GcsCredentialInfo) ProtoReflect() protoreflect.Message

func (*GcsCredentialInfo) Reset

func (x *GcsCredentialInfo) Reset()

func (*GcsCredentialInfo) String

func (x *GcsCredentialInfo) String() string

func (*GcsCredentialInfo) UnmarshalJSON

func (msg *GcsCredentialInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type IdentityClient

type IdentityClient interface {
	// Retrieve the unique provisioner identity.
	DriverGetInfo(ctx context.Context, in *DriverGetInfoRequest, opts ...grpc.CallOption) (*DriverGetInfoResponse, error)
}

IdentityClient is the client API for Identity service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

func NewIdentityClient

func NewIdentityClient(cc grpc.ClientConnInterface) IdentityClient

type IdentityServer

type IdentityServer interface {
	// Retrieve the unique provisioner identity.
	DriverGetInfo(context.Context, *DriverGetInfoRequest) (*DriverGetInfoResponse, error)
	// contains filtered or unexported methods
}

IdentityServer is the server API for Identity service. All implementations must embed UnimplementedIdentityServer for forward compatibility

type ObjectProtocol

type ObjectProtocol struct {
	Type ObjectProtocol_Type `protobuf:"varint,1,opt,name=type,proto3,enum=sigs.k8s.io.cosi.v1alpha2.ObjectProtocol_Type" json:"type,omitempty"`
	// contains filtered or unexported fields
}

func (*ObjectProtocol) Descriptor deprecated

func (*ObjectProtocol) Descriptor() ([]byte, []int)

Deprecated: Use ObjectProtocol.ProtoReflect.Descriptor instead.

func (*ObjectProtocol) GetType

func (x *ObjectProtocol) GetType() ObjectProtocol_Type

func (*ObjectProtocol) MarshalJSON

func (msg *ObjectProtocol) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*ObjectProtocol) ProtoMessage

func (*ObjectProtocol) ProtoMessage()

func (*ObjectProtocol) ProtoReflect

func (x *ObjectProtocol) ProtoReflect() protoreflect.Message

func (*ObjectProtocol) Reset

func (x *ObjectProtocol) Reset()

func (*ObjectProtocol) String

func (x *ObjectProtocol) String() string

func (*ObjectProtocol) UnmarshalJSON

func (msg *ObjectProtocol) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type ObjectProtocolAndBucketInfo

type ObjectProtocolAndBucketInfo struct {

	// Protocol support and bucket info for S3 protocol access.
	S3 *S3BucketInfo `protobuf:"bytes,1,opt,name=s3,proto3" json:"s3,omitempty"`
	// Protocol support and bucket info for Azure (Blob) protocol access.
	Azure *AzureBucketInfo `protobuf:"bytes,2,opt,name=azure,proto3" json:"azure,omitempty"`
	// Protocol support and bucket info for Google Cloud Storage protocol access.
	Gcs *GcsBucketInfo `protobuf:"bytes,3,opt,name=gcs,proto3" json:"gcs,omitempty"`
	// contains filtered or unexported fields
}

Bucket info for the backend bucket corresponding to each protocol. If a protocol is not supported, the message MUST be empty/nil.

func (*ObjectProtocolAndBucketInfo) Descriptor deprecated

func (*ObjectProtocolAndBucketInfo) Descriptor() ([]byte, []int)

Deprecated: Use ObjectProtocolAndBucketInfo.ProtoReflect.Descriptor instead.

func (*ObjectProtocolAndBucketInfo) GetAzure

func (*ObjectProtocolAndBucketInfo) GetGcs

func (*ObjectProtocolAndBucketInfo) GetS3

func (*ObjectProtocolAndBucketInfo) MarshalJSON

func (msg *ObjectProtocolAndBucketInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*ObjectProtocolAndBucketInfo) ProtoMessage

func (*ObjectProtocolAndBucketInfo) ProtoMessage()

func (*ObjectProtocolAndBucketInfo) ProtoReflect

func (*ObjectProtocolAndBucketInfo) Reset

func (x *ObjectProtocolAndBucketInfo) Reset()

func (*ObjectProtocolAndBucketInfo) String

func (x *ObjectProtocolAndBucketInfo) String() string

func (*ObjectProtocolAndBucketInfo) UnmarshalJSON

func (msg *ObjectProtocolAndBucketInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type ObjectProtocol_Type

type ObjectProtocol_Type int32
const (
	ObjectProtocol_UNKNOWN ObjectProtocol_Type = 0
	// S3 represents the S3 object protocol type.
	ObjectProtocol_S3 ObjectProtocol_Type = 1
	// AZURE represents the Azure Blob object protocol type.
	ObjectProtocol_AZURE ObjectProtocol_Type = 2
	// GCS represents the Google Cloud Storage object protocol type.
	ObjectProtocol_GCS ObjectProtocol_Type = 3
)

func (ObjectProtocol_Type) Descriptor

func (ObjectProtocol_Type) Enum

func (ObjectProtocol_Type) EnumDescriptor deprecated

func (ObjectProtocol_Type) EnumDescriptor() ([]byte, []int)

Deprecated: Use ObjectProtocol_Type.Descriptor instead.

func (ObjectProtocol_Type) Number

func (ObjectProtocol_Type) String

func (x ObjectProtocol_Type) String() string

func (ObjectProtocol_Type) Type

type ProvisionerClient

type ProvisionerClient interface {
	// Create the bucket in the backend.
	//
	// Important return codes:
	// - MUST return OK if a backend bucket with matching identity and parameters already exists.
	// - MUST return ALREADY_EXISTS if a backend bucket with matching identity exists but with incompatible parameters.
	DriverCreateBucket(ctx context.Context, in *DriverCreateBucketRequest, opts ...grpc.CallOption) (*DriverCreateBucketResponse, error)
	// Get details about a statically-provisioned bucket that should already exist in the OSP backend.
	//
	// Important return codes:
	// - MUST return OK if a backend bucket with matching identity and parameters already exists.
	// - MUST return NOT_FOUND if a bucket with matching identity does not exist.
	DriverGetExistingBucket(ctx context.Context, in *DriverGetExistingBucketRequest, opts ...grpc.CallOption) (*DriverGetExistingBucketResponse, error)
	// Delete the bucket in the backend.
	//
	// Important return codes:
	// - MUST return OK if the bucket has already been deleted.
	DriverDeleteBucket(ctx context.Context, in *DriverDeleteBucketRequest, opts ...grpc.CallOption) (*DriverDeleteBucketResponse, error)
	// Grant access to a bucket.
	//
	// Important return codes:
	// - MUST return OK if a principal with matching identity and parameters already exists.
	// - MUST return ALREADY_EXISTS if a principal with matching identity exists but with incompatible parameters.
	// - MUST return OUT_OF_RANGE - if (and only if) the driver/backend does not support multi-bucket access.
	DriverGrantBucketAccess(ctx context.Context, in *DriverGrantBucketAccessRequest, opts ...grpc.CallOption) (*DriverGrantBucketAccessResponse, error)
	// Revokes access to given bucket(s) from a principal.
	//
	// Important return codes:
	// - MUST return OK if access has already been removed from a principal.
	DriverRevokeBucketAccess(ctx context.Context, in *DriverRevokeBucketAccessRequest, opts ...grpc.CallOption) (*DriverRevokeBucketAccessResponse, error)
}

ProvisionerClient is the client API for Provisioner service.

For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.

type ProvisionerServer

type ProvisionerServer interface {
	// Create the bucket in the backend.
	//
	// Important return codes:
	// - MUST return OK if a backend bucket with matching identity and parameters already exists.
	// - MUST return ALREADY_EXISTS if a backend bucket with matching identity exists but with incompatible parameters.
	DriverCreateBucket(context.Context, *DriverCreateBucketRequest) (*DriverCreateBucketResponse, error)
	// Get details about a statically-provisioned bucket that should already exist in the OSP backend.
	//
	// Important return codes:
	// - MUST return OK if a backend bucket with matching identity and parameters already exists.
	// - MUST return NOT_FOUND if a bucket with matching identity does not exist.
	DriverGetExistingBucket(context.Context, *DriverGetExistingBucketRequest) (*DriverGetExistingBucketResponse, error)
	// Delete the bucket in the backend.
	//
	// Important return codes:
	// - MUST return OK if the bucket has already been deleted.
	DriverDeleteBucket(context.Context, *DriverDeleteBucketRequest) (*DriverDeleteBucketResponse, error)
	// Grant access to a bucket.
	//
	// Important return codes:
	// - MUST return OK if a principal with matching identity and parameters already exists.
	// - MUST return ALREADY_EXISTS if a principal with matching identity exists but with incompatible parameters.
	// - MUST return OUT_OF_RANGE - if (and only if) the driver/backend does not support multi-bucket access.
	DriverGrantBucketAccess(context.Context, *DriverGrantBucketAccessRequest) (*DriverGrantBucketAccessResponse, error)
	// Revokes access to given bucket(s) from a principal.
	//
	// Important return codes:
	// - MUST return OK if access has already been removed from a principal.
	DriverRevokeBucketAccess(context.Context, *DriverRevokeBucketAccessRequest) (*DriverRevokeBucketAccessResponse, error)
	// contains filtered or unexported methods
}

ProvisionerServer is the server API for Provisioner service. All implementations must embed UnimplementedProvisionerServer for forward compatibility

type S3AddressingStyle

type S3AddressingStyle struct {
	Style S3AddressingStyle_Style `protobuf:"varint,1,opt,name=style,proto3,enum=sigs.k8s.io.cosi.v1alpha2.S3AddressingStyle_Style" json:"style,omitempty"`
	// contains filtered or unexported fields
}

S3 addressing style. See: https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html

func (*S3AddressingStyle) Descriptor deprecated

func (*S3AddressingStyle) Descriptor() ([]byte, []int)

Deprecated: Use S3AddressingStyle.ProtoReflect.Descriptor instead.

func (*S3AddressingStyle) GetStyle

func (*S3AddressingStyle) MarshalJSON

func (msg *S3AddressingStyle) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*S3AddressingStyle) ProtoMessage

func (*S3AddressingStyle) ProtoMessage()

func (*S3AddressingStyle) ProtoReflect

func (x *S3AddressingStyle) ProtoReflect() protoreflect.Message

func (*S3AddressingStyle) Reset

func (x *S3AddressingStyle) Reset()

func (*S3AddressingStyle) String

func (x *S3AddressingStyle) String() string

func (*S3AddressingStyle) UnmarshalJSON

func (msg *S3AddressingStyle) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type S3AddressingStyle_Style

type S3AddressingStyle_Style int32
const (
	S3AddressingStyle_UNKNOWN S3AddressingStyle_Style = 0
	// Path-style addressing.
	S3AddressingStyle_PATH S3AddressingStyle_Style = 1
	// Virtual-hosted-style addressing.
	S3AddressingStyle_VIRTUAL S3AddressingStyle_Style = 2
)

func (S3AddressingStyle_Style) Descriptor

func (S3AddressingStyle_Style) Enum

func (S3AddressingStyle_Style) EnumDescriptor deprecated

func (S3AddressingStyle_Style) EnumDescriptor() ([]byte, []int)

Deprecated: Use S3AddressingStyle_Style.Descriptor instead.

func (S3AddressingStyle_Style) Number

func (S3AddressingStyle_Style) String

func (x S3AddressingStyle_Style) String() string

func (S3AddressingStyle_Style) Type

type S3BucketInfo

type S3BucketInfo struct {

	// S3 bucket ID needed for client access.
	BucketId string `protobuf:"bytes,1,opt,name=bucket_id,json=bucketId,proto3" json:"bucket_id,omitempty"`
	// S3 endpoint URL.
	Endpoint string `protobuf:"bytes,2,opt,name=endpoint,proto3" json:"endpoint,omitempty"`
	// Geographical region where the S3 server is running.
	Region string `protobuf:"bytes,3,opt,name=region,proto3" json:"region,omitempty"`
	// S3 addressing style. Drivers should return an addressing style that the backend supports and
	// that is most likely to have the broadest client support.
	// See: https://docs.aws.amazon.com/AmazonS3/latest/userguide/VirtualHosting.html
	AddressingStyle *S3AddressingStyle `protobuf:"bytes,4,opt,name=addressing_style,json=addressingStyle,proto3" json:"addressing_style,omitempty"`
	// contains filtered or unexported fields
}

func (*S3BucketInfo) Descriptor deprecated

func (*S3BucketInfo) Descriptor() ([]byte, []int)

Deprecated: Use S3BucketInfo.ProtoReflect.Descriptor instead.

func (*S3BucketInfo) GetAddressingStyle

func (x *S3BucketInfo) GetAddressingStyle() *S3AddressingStyle

func (*S3BucketInfo) GetBucketId

func (x *S3BucketInfo) GetBucketId() string

func (*S3BucketInfo) GetEndpoint

func (x *S3BucketInfo) GetEndpoint() string

func (*S3BucketInfo) GetRegion

func (x *S3BucketInfo) GetRegion() string

func (*S3BucketInfo) MarshalJSON

func (msg *S3BucketInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*S3BucketInfo) ProtoMessage

func (*S3BucketInfo) ProtoMessage()

func (*S3BucketInfo) ProtoReflect

func (x *S3BucketInfo) ProtoReflect() protoreflect.Message

func (*S3BucketInfo) Reset

func (x *S3BucketInfo) Reset()

func (*S3BucketInfo) String

func (x *S3BucketInfo) String() string

func (*S3BucketInfo) UnmarshalJSON

func (msg *S3BucketInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type S3CredentialInfo

type S3CredentialInfo struct {

	// S3 access key ID.
	AccessKeyId string `protobuf:"bytes,1,opt,name=access_key_id,json=accessKeyId,proto3" json:"access_key_id,omitempty"`
	// S3 access secret key.
	AccessSecretKey string `protobuf:"bytes,2,opt,name=access_secret_key,json=accessSecretKey,proto3" json:"access_secret_key,omitempty"`
	// contains filtered or unexported fields
}

func (*S3CredentialInfo) Descriptor deprecated

func (*S3CredentialInfo) Descriptor() ([]byte, []int)

Deprecated: Use S3CredentialInfo.ProtoReflect.Descriptor instead.

func (*S3CredentialInfo) GetAccessKeyId

func (x *S3CredentialInfo) GetAccessKeyId() string

func (*S3CredentialInfo) GetAccessSecretKey

func (x *S3CredentialInfo) GetAccessSecretKey() string

func (*S3CredentialInfo) MarshalJSON

func (msg *S3CredentialInfo) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler

func (*S3CredentialInfo) ProtoMessage

func (*S3CredentialInfo) ProtoMessage()

func (*S3CredentialInfo) ProtoReflect

func (x *S3CredentialInfo) ProtoReflect() protoreflect.Message

func (*S3CredentialInfo) Reset

func (x *S3CredentialInfo) Reset()

func (*S3CredentialInfo) String

func (x *S3CredentialInfo) String() string

func (*S3CredentialInfo) UnmarshalJSON

func (msg *S3CredentialInfo) UnmarshalJSON(b []byte) error

UnmarshalJSON implements json.Unmarshaler

type UnimplementedIdentityServer

type UnimplementedIdentityServer struct {
}

UnimplementedIdentityServer must be embedded to have forward compatible implementations.

func (UnimplementedIdentityServer) DriverGetInfo

type UnimplementedProvisionerServer

type UnimplementedProvisionerServer struct {
}

UnimplementedProvisionerServer must be embedded to have forward compatible implementations.

func (UnimplementedProvisionerServer) DriverCreateBucket

func (UnimplementedProvisionerServer) DriverDeleteBucket

type UnsafeIdentityServer

type UnsafeIdentityServer interface {
	// contains filtered or unexported methods
}

UnsafeIdentityServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to IdentityServer will result in compilation errors.

type UnsafeProvisionerServer

type UnsafeProvisionerServer interface {
	// contains filtered or unexported methods
}

UnsafeProvisionerServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to ProvisionerServer will result in compilation errors.

Directories

Path Synopsis
hack
fake-gen command
If this program is on the path of your machine you can invoke it in the following way:
If this program is on the path of your machine you can invoke it in the following way:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL