// Copyright IBM Corp. 2020, 2026
// SPDX-License-Identifier: MPL-2.0

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.11
// 	protoc        (unknown)
// source: plugin/v1/storage_plugin_service.proto

package plugin

import (
	plugins "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/plugins"
	storagebuckets "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/storagebuckets"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type StateType int32

const (
	StateType_STATE_TYPE_UNSPECIFIED StateType = 0
	StateType_STATE_TYPE_OK          StateType = 1
	StateType_STATE_TYPE_ERROR       StateType = 2
	StateType_STATE_TYPE_UNKNOWN     StateType = 3
)

// Enum value maps for StateType.
var (
	StateType_name = map[int32]string{
		0: "STATE_TYPE_UNSPECIFIED",
		1: "STATE_TYPE_OK",
		2: "STATE_TYPE_ERROR",
		3: "STATE_TYPE_UNKNOWN",
	}
	StateType_value = map[string]int32{
		"STATE_TYPE_UNSPECIFIED": 0,
		"STATE_TYPE_OK":          1,
		"STATE_TYPE_ERROR":       2,
		"STATE_TYPE_UNKNOWN":     3,
	}
)

func (x StateType) Enum() *StateType {
	p := new(StateType)
	*p = x
	return p
}

func (x StateType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (StateType) Descriptor() protoreflect.EnumDescriptor {
	return file_plugin_v1_storage_plugin_service_proto_enumTypes[0].Descriptor()
}

func (StateType) Type() protoreflect.EnumType {
	return &file_plugin_v1_storage_plugin_service_proto_enumTypes[0]
}

func (x StateType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use StateType.Descriptor instead.
func (StateType) EnumDescriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{0}
}

type NormalizeStorageBucketDataRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The incoming attributes in the create or update request.
	Attributes *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"`
	// The plugin information for this request.
	Plugin        *plugins.PluginInfo `protobuf:"bytes,20,opt,name=plugin,proto3" json:"plugin,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NormalizeStorageBucketDataRequest) Reset() {
	*x = NormalizeStorageBucketDataRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NormalizeStorageBucketDataRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NormalizeStorageBucketDataRequest) ProtoMessage() {}

func (x *NormalizeStorageBucketDataRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NormalizeStorageBucketDataRequest.ProtoReflect.Descriptor instead.
func (*NormalizeStorageBucketDataRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{0}
}

func (x *NormalizeStorageBucketDataRequest) GetAttributes() *structpb.Struct {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *NormalizeStorageBucketDataRequest) GetPlugin() *plugins.PluginInfo {
	if x != nil {
		return x.Plugin
	}
	return nil
}

type NormalizeStorageBucketDataResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Outgoing attributes. If nil, no changes will be recorded. If non-nil, the
	// values here will be used in place of the original set of attributes.
	Attributes    *structpb.Struct `protobuf:"bytes,10,opt,name=attributes,proto3" json:"attributes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *NormalizeStorageBucketDataResponse) Reset() {
	*x = NormalizeStorageBucketDataResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *NormalizeStorageBucketDataResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*NormalizeStorageBucketDataResponse) ProtoMessage() {}

func (x *NormalizeStorageBucketDataResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use NormalizeStorageBucketDataResponse.ProtoReflect.Descriptor instead.
func (*NormalizeStorageBucketDataResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{1}
}

func (x *NormalizeStorageBucketDataResponse) GetAttributes() *structpb.Struct {
	if x != nil {
		return x.Attributes
	}
	return nil
}

type OnCreateStorageBucketRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The storage bucket to create. The request may contain optional
	// secret data to help authenticate the request against a cloud
	// API.
	Bucket        *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnCreateStorageBucketRequest) Reset() {
	*x = OnCreateStorageBucketRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnCreateStorageBucketRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnCreateStorageBucketRequest) ProtoMessage() {}

func (x *OnCreateStorageBucketRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnCreateStorageBucketRequest.ProtoReflect.Descriptor instead.
func (*OnCreateStorageBucketRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{2}
}

func (x *OnCreateStorageBucketRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

type OnCreateStorageBucketResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The persisted data represents state persisted between storage bucket calls.
	Persisted     *storagebuckets.StorageBucketPersisted `protobuf:"bytes,10,opt,name=persisted,proto3" json:"persisted,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnCreateStorageBucketResponse) Reset() {
	*x = OnCreateStorageBucketResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnCreateStorageBucketResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnCreateStorageBucketResponse) ProtoMessage() {}

func (x *OnCreateStorageBucketResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnCreateStorageBucketResponse.ProtoReflect.Descriptor instead.
func (*OnCreateStorageBucketResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{3}
}

func (x *OnCreateStorageBucketResponse) GetPersisted() *storagebuckets.StorageBucketPersisted {
	if x != nil {
		return x.Persisted
	}
	return nil
}

type OnUpdateStorageBucketRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	CurrentBucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=current_bucket,json=currentBucket,proto3" json:"current_bucket,omitempty"`
	// Required. The requested new state of the storage bucket.
	// This field may contain optional secret data that has been
	// updated from the last returned persisted state.
	NewBucket *storagebuckets.StorageBucket `protobuf:"bytes,20,opt,name=new_bucket,json=newBucket,proto3" json:"new_bucket,omitempty"`
	// Required. The existing persisted secret data.
	Persisted     *storagebuckets.StorageBucketPersisted `protobuf:"bytes,30,opt,name=persisted,proto3" json:"persisted,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnUpdateStorageBucketRequest) Reset() {
	*x = OnUpdateStorageBucketRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnUpdateStorageBucketRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnUpdateStorageBucketRequest) ProtoMessage() {}

func (x *OnUpdateStorageBucketRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnUpdateStorageBucketRequest.ProtoReflect.Descriptor instead.
func (*OnUpdateStorageBucketRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{4}
}

func (x *OnUpdateStorageBucketRequest) GetCurrentBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.CurrentBucket
	}
	return nil
}

func (x *OnUpdateStorageBucketRequest) GetNewBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.NewBucket
	}
	return nil
}

func (x *OnUpdateStorageBucketRequest) GetPersisted() *storagebuckets.StorageBucketPersisted {
	if x != nil {
		return x.Persisted
	}
	return nil
}

type OnUpdateStorageBucketResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The persisted data represents state persisted between storage bucket calls.
	Persisted     *storagebuckets.StorageBucketPersisted `protobuf:"bytes,10,opt,name=persisted,proto3" json:"persisted,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnUpdateStorageBucketResponse) Reset() {
	*x = OnUpdateStorageBucketResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnUpdateStorageBucketResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnUpdateStorageBucketResponse) ProtoMessage() {}

func (x *OnUpdateStorageBucketResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnUpdateStorageBucketResponse.ProtoReflect.Descriptor instead.
func (*OnUpdateStorageBucketResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{5}
}

func (x *OnUpdateStorageBucketResponse) GetPersisted() *storagebuckets.StorageBucketPersisted {
	if x != nil {
		return x.Persisted
	}
	return nil
}

type OnDeleteStorageBucketRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket to delete.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Required. The existing persisted secret data.
	Persisted     *storagebuckets.StorageBucketPersisted `protobuf:"bytes,20,opt,name=persisted,proto3" json:"persisted,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnDeleteStorageBucketRequest) Reset() {
	*x = OnDeleteStorageBucketRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnDeleteStorageBucketRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnDeleteStorageBucketRequest) ProtoMessage() {}

func (x *OnDeleteStorageBucketRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnDeleteStorageBucketRequest.ProtoReflect.Descriptor instead.
func (*OnDeleteStorageBucketRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{6}
}

func (x *OnDeleteStorageBucketRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *OnDeleteStorageBucketRequest) GetPersisted() *storagebuckets.StorageBucketPersisted {
	if x != nil {
		return x.Persisted
	}
	return nil
}

type OnDeleteStorageBucketResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OnDeleteStorageBucketResponse) Reset() {
	*x = OnDeleteStorageBucketResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OnDeleteStorageBucketResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OnDeleteStorageBucketResponse) ProtoMessage() {}

func (x *OnDeleteStorageBucketResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OnDeleteStorageBucketResponse.ProtoReflect.Descriptor instead.
func (*OnDeleteStorageBucketResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{7}
}

type ValidatePermissionsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket        *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ValidatePermissionsRequest) Reset() {
	*x = ValidatePermissionsRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ValidatePermissionsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ValidatePermissionsRequest) ProtoMessage() {}

func (x *ValidatePermissionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ValidatePermissionsRequest.ProtoReflect.Descriptor instead.
func (*ValidatePermissionsRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{8}
}

func (x *ValidatePermissionsRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

type ValidatePermissionsResponse struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ValidatePermissionsResponse) Reset() {
	*x = ValidatePermissionsResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ValidatePermissionsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ValidatePermissionsResponse) ProtoMessage() {}

func (x *ValidatePermissionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ValidatePermissionsResponse.ProtoReflect.Descriptor instead.
func (*ValidatePermissionsResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{9}
}

type HeadObjectRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Required. The path of the object.
	Key           string `protobuf:"bytes,20,opt,name=key,proto3" json:"key,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HeadObjectRequest) Reset() {
	*x = HeadObjectRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HeadObjectRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HeadObjectRequest) ProtoMessage() {}

func (x *HeadObjectRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HeadObjectRequest.ProtoReflect.Descriptor instead.
func (*HeadObjectRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{10}
}

func (x *HeadObjectRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *HeadObjectRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

type HeadObjectResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The size of the object in bytes.
	ContentLength int64 `protobuf:"varint,10,opt,name=content_length,json=contentLength,proto3" json:"content_length,omitempty"`
	// Creation date of the object.
	LastModified  *timestamppb.Timestamp `protobuf:"bytes,20,opt,name=last_modified,json=lastModified,proto3" json:"last_modified,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HeadObjectResponse) Reset() {
	*x = HeadObjectResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HeadObjectResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HeadObjectResponse) ProtoMessage() {}

func (x *HeadObjectResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HeadObjectResponse.ProtoReflect.Descriptor instead.
func (*HeadObjectResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{11}
}

func (x *HeadObjectResponse) GetContentLength() int64 {
	if x != nil {
		return x.ContentLength
	}
	return 0
}

func (x *HeadObjectResponse) GetLastModified() *timestamppb.Timestamp {
	if x != nil {
		return x.LastModified
	}
	return nil
}

type GetObjectRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Required. The path of the object.
	Key string `protobuf:"bytes,20,opt,name=key,proto3" json:"key,omitempty"`
	// Optional. The maximum size of the stream response message. Defaults to 64KiB.
	ChunkSize     uint32 `protobuf:"varint,30,opt,name=chunk_size,json=chunkSize,proto3" json:"chunk_size,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetObjectRequest) Reset() {
	*x = GetObjectRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetObjectRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetObjectRequest) ProtoMessage() {}

func (x *GetObjectRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetObjectRequest.ProtoReflect.Descriptor instead.
func (*GetObjectRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{12}
}

func (x *GetObjectRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *GetObjectRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *GetObjectRequest) GetChunkSize() uint32 {
	if x != nil {
		return x.ChunkSize
	}
	return 0
}

type GetObjectResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Object data.
	FileChunk     []byte `protobuf:"bytes,10,opt,name=file_chunk,json=fileChunk,proto3" json:"file_chunk,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetObjectResponse) Reset() {
	*x = GetObjectResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetObjectResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetObjectResponse) ProtoMessage() {}

func (x *GetObjectResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetObjectResponse.ProtoReflect.Descriptor instead.
func (*GetObjectResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{13}
}

func (x *GetObjectResponse) GetFileChunk() []byte {
	if x != nil {
		return x.FileChunk
	}
	return nil
}

type ListObjectsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Optional. The key prefix used to scope the object search.
	KeyPrefix string `protobuf:"bytes,20,opt,name=key_prefix,json=keyPrefix,proto3" json:"key_prefix,omitempty"`
	// Optional. Flag to recursively list all objects under a given prefix.
	Recursive     bool `protobuf:"varint,30,opt,name=recursive,proto3" json:"recursive,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListObjectsRequest) Reset() {
	*x = ListObjectsRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListObjectsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListObjectsRequest) ProtoMessage() {}

func (x *ListObjectsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListObjectsRequest.ProtoReflect.Descriptor instead.
func (*ListObjectsRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{14}
}

func (x *ListObjectsRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *ListObjectsRequest) GetKeyPrefix() string {
	if x != nil {
		return x.KeyPrefix
	}
	return ""
}

func (x *ListObjectsRequest) GetRecursive() bool {
	if x != nil {
		return x.Recursive
	}
	return false
}

type Object struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The object key defined within the object storage.
	Key string `protobuf:"bytes,10,opt,name=key,proto3" json:"key,omitempty"`
	// Informs whether or not the object is a directory.
	IsDir         bool `protobuf:"varint,20,opt,name=is_dir,json=isDir,proto3" json:"is_dir,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Object) Reset() {
	*x = Object{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Object) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Object) ProtoMessage() {}

func (x *Object) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Object.ProtoReflect.Descriptor instead.
func (*Object) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{15}
}

func (x *Object) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *Object) GetIsDir() bool {
	if x != nil {
		return x.IsDir
	}
	return false
}

type ListObjectsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A list of objects found under a provided prefix.
	Objects       []*Object `protobuf:"bytes,10,rep,name=objects,proto3" json:"objects,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListObjectsResponse) Reset() {
	*x = ListObjectsResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListObjectsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListObjectsResponse) ProtoMessage() {}

func (x *ListObjectsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListObjectsResponse.ProtoReflect.Descriptor instead.
func (*ListObjectsResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{16}
}

func (x *ListObjectsResponse) GetObjects() []*Object {
	if x != nil {
		return x.Objects
	}
	return nil
}

type PutObjectRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Required. The path of the object.
	Key string `protobuf:"bytes,20,opt,name=key,proto3" json:"key,omitempty"`
	// Required. The path of the object on local disk.
	Path          string `protobuf:"bytes,30,opt,name=path,proto3" json:"path,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PutObjectRequest) Reset() {
	*x = PutObjectRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PutObjectRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PutObjectRequest) ProtoMessage() {}

func (x *PutObjectRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PutObjectRequest.ProtoReflect.Descriptor instead.
func (*PutObjectRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{17}
}

func (x *PutObjectRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *PutObjectRequest) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *PutObjectRequest) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

type PutObjectResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// 256-bit SHA-256 digest of the object.
	ChecksumSha_256 []byte `protobuf:"bytes,10,opt,name=checksum_sha_256,json=checksumSha256,proto3" json:"checksum_sha_256,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *PutObjectResponse) Reset() {
	*x = PutObjectResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PutObjectResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PutObjectResponse) ProtoMessage() {}

func (x *PutObjectResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PutObjectResponse.ProtoReflect.Descriptor instead.
func (*PutObjectResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{18}
}

func (x *PutObjectResponse) GetChecksumSha_256() []byte {
	if x != nil {
		return x.ChecksumSha_256
	}
	return nil
}

type DeleteObjectsRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The existing state of the storage bucket.
	Bucket *storagebuckets.StorageBucket `protobuf:"bytes,10,opt,name=bucket,proto3" json:"bucket,omitempty"`
	// Required. The prefix of object keys to be deleted.
	//
	// Deletes all objects whose keys start with this field. Note that object storage keys
	// use fully qualified names, including the full directory path in the object key. This
	// allows you to delete entire "folders" stored on remote by passing the directory path
	// and setting recursive to true, or only a single object by passing the object's full
	// key and setting recursive to false.
	KeyPrefix string `protobuf:"bytes,20,opt,name=key_prefix,json=keyPrefix,proto3" json:"key_prefix,omitempty"`
	// Required. Determines whether or not to delete all objects beginning with the prefix
	// or only a single key that matches the prefix in its entirety.
	//
	// Note that this means when recursive = false, key_prefix is not treated as a prefix
	// but as a fully qualified key.
	Recursive     bool `protobuf:"varint,30,opt,name=recursive,proto3" json:"recursive,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteObjectsRequest) Reset() {
	*x = DeleteObjectsRequest{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteObjectsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteObjectsRequest) ProtoMessage() {}

func (x *DeleteObjectsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteObjectsRequest.ProtoReflect.Descriptor instead.
func (*DeleteObjectsRequest) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{19}
}

func (x *DeleteObjectsRequest) GetBucket() *storagebuckets.StorageBucket {
	if x != nil {
		return x.Bucket
	}
	return nil
}

func (x *DeleteObjectsRequest) GetKeyPrefix() string {
	if x != nil {
		return x.KeyPrefix
	}
	return ""
}

func (x *DeleteObjectsRequest) GetRecursive() bool {
	if x != nil {
		return x.Recursive
	}
	return false
}

type DeleteObjectsResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The number of objects successfully deleted.
	//
	// Note that when receiving a successful response, the plugin guarantees that all
	// objects beginning with the prefix have been deleted. This response is purely
	// informational and not meant to be used for validation.
	ObjectsDeleted uint32 `protobuf:"varint,10,opt,name=objects_deleted,json=objectsDeleted,proto3" json:"objects_deleted,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *DeleteObjectsResponse) Reset() {
	*x = DeleteObjectsResponse{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteObjectsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteObjectsResponse) ProtoMessage() {}

func (x *DeleteObjectsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteObjectsResponse.ProtoReflect.Descriptor instead.
func (*DeleteObjectsResponse) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{20}
}

func (x *DeleteObjectsResponse) GetObjectsDeleted() uint32 {
	if x != nil {
		return x.ObjectsDeleted
	}
	return 0
}

type Permission struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The state of the permission.
	State StateType `protobuf:"varint,10,opt,name=state,proto3,enum=plugin.v1.StateType" json:"state,omitempty"`
	// Optional. The error details returned from the external object store service.
	ErrorDetails string `protobuf:"bytes,20,opt,name=error_details,json=errorDetails,proto3" json:"error_details,omitempty"`
	// Required. The utc timestamp of when the permission was tested.
	CheckedAt     *timestamppb.Timestamp `protobuf:"bytes,30,opt,name=checked_at,json=checkedAt,proto3" json:"checked_at,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Permission) Reset() {
	*x = Permission{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Permission) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Permission) ProtoMessage() {}

func (x *Permission) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Permission.ProtoReflect.Descriptor instead.
func (*Permission) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{21}
}

func (x *Permission) GetState() StateType {
	if x != nil {
		return x.State
	}
	return StateType_STATE_TYPE_UNSPECIFIED
}

func (x *Permission) GetErrorDetails() string {
	if x != nil {
		return x.ErrorDetails
	}
	return ""
}

func (x *Permission) GetCheckedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CheckedAt
	}
	return nil
}

type Permissions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Optional. The write permission state.
	Write *Permission `protobuf:"bytes,10,opt,name=write,proto3" json:"write,omitempty"`
	// Optional. The read permission state.
	Read *Permission `protobuf:"bytes,20,opt,name=read,proto3" json:"read,omitempty"`
	// Optional. The delete permission state.
	Delete        *Permission `protobuf:"bytes,30,opt,name=delete,proto3" json:"delete,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Permissions) Reset() {
	*x = Permissions{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Permissions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Permissions) ProtoMessage() {}

func (x *Permissions) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Permissions.ProtoReflect.Descriptor instead.
func (*Permissions) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{22}
}

func (x *Permissions) GetWrite() *Permission {
	if x != nil {
		return x.Write
	}
	return nil
}

func (x *Permissions) GetRead() *Permission {
	if x != nil {
		return x.Read
	}
	return nil
}

func (x *Permissions) GetDelete() *Permission {
	if x != nil {
		return x.Delete
	}
	return nil
}

type StorageBucketCredentialState struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Required. The permission states.
	State *Permissions `protobuf:"bytes,10,opt,name=state,proto3" json:"state,omitempty"`
	// Required. The version of the storage bucket.
	Version       uint32 `protobuf:"varint,20,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StorageBucketCredentialState) Reset() {
	*x = StorageBucketCredentialState{}
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StorageBucketCredentialState) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StorageBucketCredentialState) ProtoMessage() {}

func (x *StorageBucketCredentialState) ProtoReflect() protoreflect.Message {
	mi := &file_plugin_v1_storage_plugin_service_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StorageBucketCredentialState.ProtoReflect.Descriptor instead.
func (*StorageBucketCredentialState) Descriptor() ([]byte, []int) {
	return file_plugin_v1_storage_plugin_service_proto_rawDescGZIP(), []int{23}
}

func (x *StorageBucketCredentialState) GetState() *Permissions {
	if x != nil {
		return x.State
	}
	return nil
}

func (x *StorageBucketCredentialState) GetVersion() uint32 {
	if x != nil {
		return x.Version
	}
	return 0
}

var File_plugin_v1_storage_plugin_service_proto protoreflect.FileDescriptor

const file_plugin_v1_storage_plugin_service_proto_rawDesc = "" +
	"\n" +
	"&plugin/v1/storage_plugin_service.proto\x12\tplugin.v1\x1a0controller/api/resources/plugins/v1/plugin.proto\x1a?controller/api/resources/storagebuckets/v1/storage_bucket.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa5\x01\n" +
	"!NormalizeStorageBucketDataRequest\x127\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructR\n" +
	"attributes\x12G\n" +
	"\x06plugin\x18\x14 \x01(\v2/.controller.api.resources.plugins.v1.PluginInfoR\x06plugin\"]\n" +
	"\"NormalizeStorageBucketDataResponse\x127\n" +
	"\n" +
	"attributes\x18\n" +
	" \x01(\v2\x17.google.protobuf.StructR\n" +
	"attributes\"q\n" +
	"\x1cOnCreateStorageBucketRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\"\x81\x01\n" +
	"\x1dOnCreateStorageBucketResponse\x12`\n" +
	"\tpersisted\x18\n" +
	" \x01(\v2B.controller.api.resources.storagebuckets.v1.StorageBucketPersistedR\tpersisted\"\xbc\x02\n" +
	"\x1cOnUpdateStorageBucketRequest\x12`\n" +
	"\x0ecurrent_bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\rcurrentBucket\x12X\n" +
	"\n" +
	"new_bucket\x18\x14 \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\tnewBucket\x12`\n" +
	"\tpersisted\x18\x1e \x01(\v2B.controller.api.resources.storagebuckets.v1.StorageBucketPersistedR\tpersisted\"\x81\x01\n" +
	"\x1dOnUpdateStorageBucketResponse\x12`\n" +
	"\tpersisted\x18\n" +
	" \x01(\v2B.controller.api.resources.storagebuckets.v1.StorageBucketPersistedR\tpersisted\"\xd3\x01\n" +
	"\x1cOnDeleteStorageBucketRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12`\n" +
	"\tpersisted\x18\x14 \x01(\v2B.controller.api.resources.storagebuckets.v1.StorageBucketPersistedR\tpersisted\"\x1f\n" +
	"\x1dOnDeleteStorageBucketResponse\"o\n" +
	"\x1aValidatePermissionsRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\"\x1d\n" +
	"\x1bValidatePermissionsResponse\"x\n" +
	"\x11HeadObjectRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12\x10\n" +
	"\x03key\x18\x14 \x01(\tR\x03key\"|\n" +
	"\x12HeadObjectResponse\x12%\n" +
	"\x0econtent_length\x18\n" +
	" \x01(\x03R\rcontentLength\x12?\n" +
	"\rlast_modified\x18\x14 \x01(\v2\x1a.google.protobuf.TimestampR\flastModified\"\x96\x01\n" +
	"\x10GetObjectRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12\x10\n" +
	"\x03key\x18\x14 \x01(\tR\x03key\x12\x1d\n" +
	"\n" +
	"chunk_size\x18\x1e \x01(\rR\tchunkSize\"2\n" +
	"\x11GetObjectResponse\x12\x1d\n" +
	"\n" +
	"file_chunk\x18\n" +
	" \x01(\fR\tfileChunk\"\xa4\x01\n" +
	"\x12ListObjectsRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12\x1d\n" +
	"\n" +
	"key_prefix\x18\x14 \x01(\tR\tkeyPrefix\x12\x1c\n" +
	"\trecursive\x18\x1e \x01(\bR\trecursive\"1\n" +
	"\x06Object\x12\x10\n" +
	"\x03key\x18\n" +
	" \x01(\tR\x03key\x12\x15\n" +
	"\x06is_dir\x18\x14 \x01(\bR\x05isDir\"B\n" +
	"\x13ListObjectsResponse\x12+\n" +
	"\aobjects\x18\n" +
	" \x03(\v2\x11.plugin.v1.ObjectR\aobjects\"\x8b\x01\n" +
	"\x10PutObjectRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12\x10\n" +
	"\x03key\x18\x14 \x01(\tR\x03key\x12\x12\n" +
	"\x04path\x18\x1e \x01(\tR\x04path\"=\n" +
	"\x11PutObjectResponse\x12(\n" +
	"\x10checksum_sha_256\x18\n" +
	" \x01(\fR\x0echecksumSha256\"\xa6\x01\n" +
	"\x14DeleteObjectsRequest\x12Q\n" +
	"\x06bucket\x18\n" +
	" \x01(\v29.controller.api.resources.storagebuckets.v1.StorageBucketR\x06bucket\x12\x1d\n" +
	"\n" +
	"key_prefix\x18\x14 \x01(\tR\tkeyPrefix\x12\x1c\n" +
	"\trecursive\x18\x1e \x01(\bR\trecursive\"@\n" +
	"\x15DeleteObjectsResponse\x12'\n" +
	"\x0fobjects_deleted\x18\n" +
	" \x01(\rR\x0eobjectsDeleted\"\x98\x01\n" +
	"\n" +
	"Permission\x12*\n" +
	"\x05state\x18\n" +
	" \x01(\x0e2\x14.plugin.v1.StateTypeR\x05state\x12#\n" +
	"\rerror_details\x18\x14 \x01(\tR\ferrorDetails\x129\n" +
	"\n" +
	"checked_at\x18\x1e \x01(\v2\x1a.google.protobuf.TimestampR\tcheckedAt\"\x94\x01\n" +
	"\vPermissions\x12+\n" +
	"\x05write\x18\n" +
	" \x01(\v2\x15.plugin.v1.PermissionR\x05write\x12)\n" +
	"\x04read\x18\x14 \x01(\v2\x15.plugin.v1.PermissionR\x04read\x12-\n" +
	"\x06delete\x18\x1e \x01(\v2\x15.plugin.v1.PermissionR\x06delete\"f\n" +
	"\x1cStorageBucketCredentialState\x12,\n" +
	"\x05state\x18\n" +
	" \x01(\v2\x16.plugin.v1.PermissionsR\x05state\x12\x18\n" +
	"\aversion\x18\x14 \x01(\rR\aversion*h\n" +
	"\tStateType\x12\x1a\n" +
	"\x16STATE_TYPE_UNSPECIFIED\x10\x00\x12\x11\n" +
	"\rSTATE_TYPE_OK\x10\x01\x12\x14\n" +
	"\x10STATE_TYPE_ERROR\x10\x02\x12\x16\n" +
	"\x12STATE_TYPE_UNKNOWN\x10\x032\xba\a\n" +
	"\x14StoragePluginService\x12y\n" +
	"\x1aNormalizeStorageBucketData\x12,.plugin.v1.NormalizeStorageBucketDataRequest\x1a-.plugin.v1.NormalizeStorageBucketDataResponse\x12j\n" +
	"\x15OnCreateStorageBucket\x12'.plugin.v1.OnCreateStorageBucketRequest\x1a(.plugin.v1.OnCreateStorageBucketResponse\x12j\n" +
	"\x15OnUpdateStorageBucket\x12'.plugin.v1.OnUpdateStorageBucketRequest\x1a(.plugin.v1.OnUpdateStorageBucketResponse\x12j\n" +
	"\x15OnDeleteStorageBucket\x12'.plugin.v1.OnDeleteStorageBucketRequest\x1a(.plugin.v1.OnDeleteStorageBucketResponse\x12d\n" +
	"\x13ValidatePermissions\x12%.plugin.v1.ValidatePermissionsRequest\x1a&.plugin.v1.ValidatePermissionsResponse\x12I\n" +
	"\n" +
	"HeadObject\x12\x1c.plugin.v1.HeadObjectRequest\x1a\x1d.plugin.v1.HeadObjectResponse\x12H\n" +
	"\tGetObject\x12\x1b.plugin.v1.GetObjectRequest\x1a\x1c.plugin.v1.GetObjectResponse0\x01\x12L\n" +
	"\vListObjects\x12\x1d.plugin.v1.ListObjectsRequest\x1a\x1e.plugin.v1.ListObjectsResponse\x12F\n" +
	"\tPutObject\x12\x1b.plugin.v1.PutObjectRequest\x1a\x1c.plugin.v1.PutObjectResponse\x12R\n" +
	"\rDeleteObjects\x12\x1f.plugin.v1.DeleteObjectsRequest\x1a .plugin.v1.DeleteObjectsResponseB5Z3github.com/hashicorp/boundary/sdk/pbs/plugin;pluginb\x06proto3"

var (
	file_plugin_v1_storage_plugin_service_proto_rawDescOnce sync.Once
	file_plugin_v1_storage_plugin_service_proto_rawDescData []byte
)

func file_plugin_v1_storage_plugin_service_proto_rawDescGZIP() []byte {
	file_plugin_v1_storage_plugin_service_proto_rawDescOnce.Do(func() {
		file_plugin_v1_storage_plugin_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_plugin_v1_storage_plugin_service_proto_rawDesc), len(file_plugin_v1_storage_plugin_service_proto_rawDesc)))
	})
	return file_plugin_v1_storage_plugin_service_proto_rawDescData
}

var file_plugin_v1_storage_plugin_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_plugin_v1_storage_plugin_service_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
var file_plugin_v1_storage_plugin_service_proto_goTypes = []any{
	(StateType)(0), // 0: plugin.v1.StateType
	(*NormalizeStorageBucketDataRequest)(nil),     // 1: plugin.v1.NormalizeStorageBucketDataRequest
	(*NormalizeStorageBucketDataResponse)(nil),    // 2: plugin.v1.NormalizeStorageBucketDataResponse
	(*OnCreateStorageBucketRequest)(nil),          // 3: plugin.v1.OnCreateStorageBucketRequest
	(*OnCreateStorageBucketResponse)(nil),         // 4: plugin.v1.OnCreateStorageBucketResponse
	(*OnUpdateStorageBucketRequest)(nil),          // 5: plugin.v1.OnUpdateStorageBucketRequest
	(*OnUpdateStorageBucketResponse)(nil),         // 6: plugin.v1.OnUpdateStorageBucketResponse
	(*OnDeleteStorageBucketRequest)(nil),          // 7: plugin.v1.OnDeleteStorageBucketRequest
	(*OnDeleteStorageBucketResponse)(nil),         // 8: plugin.v1.OnDeleteStorageBucketResponse
	(*ValidatePermissionsRequest)(nil),            // 9: plugin.v1.ValidatePermissionsRequest
	(*ValidatePermissionsResponse)(nil),           // 10: plugin.v1.ValidatePermissionsResponse
	(*HeadObjectRequest)(nil),                     // 11: plugin.v1.HeadObjectRequest
	(*HeadObjectResponse)(nil),                    // 12: plugin.v1.HeadObjectResponse
	(*GetObjectRequest)(nil),                      // 13: plugin.v1.GetObjectRequest
	(*GetObjectResponse)(nil),                     // 14: plugin.v1.GetObjectResponse
	(*ListObjectsRequest)(nil),                    // 15: plugin.v1.ListObjectsRequest
	(*Object)(nil),                                // 16: plugin.v1.Object
	(*ListObjectsResponse)(nil),                   // 17: plugin.v1.ListObjectsResponse
	(*PutObjectRequest)(nil),                      // 18: plugin.v1.PutObjectRequest
	(*PutObjectResponse)(nil),                     // 19: plugin.v1.PutObjectResponse
	(*DeleteObjectsRequest)(nil),                  // 20: plugin.v1.DeleteObjectsRequest
	(*DeleteObjectsResponse)(nil),                 // 21: plugin.v1.DeleteObjectsResponse
	(*Permission)(nil),                            // 22: plugin.v1.Permission
	(*Permissions)(nil),                           // 23: plugin.v1.Permissions
	(*StorageBucketCredentialState)(nil),          // 24: plugin.v1.StorageBucketCredentialState
	(*structpb.Struct)(nil),                       // 25: google.protobuf.Struct
	(*plugins.PluginInfo)(nil),                    // 26: controller.api.resources.plugins.v1.PluginInfo
	(*storagebuckets.StorageBucket)(nil),          // 27: controller.api.resources.storagebuckets.v1.StorageBucket
	(*storagebuckets.StorageBucketPersisted)(nil), // 28: controller.api.resources.storagebuckets.v1.StorageBucketPersisted
	(*timestamppb.Timestamp)(nil),                 // 29: google.protobuf.Timestamp
}
var file_plugin_v1_storage_plugin_service_proto_depIdxs = []int32{
	25, // 0: plugin.v1.NormalizeStorageBucketDataRequest.attributes:type_name -> google.protobuf.Struct
	26, // 1: plugin.v1.NormalizeStorageBucketDataRequest.plugin:type_name -> controller.api.resources.plugins.v1.PluginInfo
	25, // 2: plugin.v1.NormalizeStorageBucketDataResponse.attributes:type_name -> google.protobuf.Struct
	27, // 3: plugin.v1.OnCreateStorageBucketRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	28, // 4: plugin.v1.OnCreateStorageBucketResponse.persisted:type_name -> controller.api.resources.storagebuckets.v1.StorageBucketPersisted
	27, // 5: plugin.v1.OnUpdateStorageBucketRequest.current_bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	27, // 6: plugin.v1.OnUpdateStorageBucketRequest.new_bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	28, // 7: plugin.v1.OnUpdateStorageBucketRequest.persisted:type_name -> controller.api.resources.storagebuckets.v1.StorageBucketPersisted
	28, // 8: plugin.v1.OnUpdateStorageBucketResponse.persisted:type_name -> controller.api.resources.storagebuckets.v1.StorageBucketPersisted
	27, // 9: plugin.v1.OnDeleteStorageBucketRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	28, // 10: plugin.v1.OnDeleteStorageBucketRequest.persisted:type_name -> controller.api.resources.storagebuckets.v1.StorageBucketPersisted
	27, // 11: plugin.v1.ValidatePermissionsRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	27, // 12: plugin.v1.HeadObjectRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	29, // 13: plugin.v1.HeadObjectResponse.last_modified:type_name -> google.protobuf.Timestamp
	27, // 14: plugin.v1.GetObjectRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	27, // 15: plugin.v1.ListObjectsRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	16, // 16: plugin.v1.ListObjectsResponse.objects:type_name -> plugin.v1.Object
	27, // 17: plugin.v1.PutObjectRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	27, // 18: plugin.v1.DeleteObjectsRequest.bucket:type_name -> controller.api.resources.storagebuckets.v1.StorageBucket
	0,  // 19: plugin.v1.Permission.state:type_name -> plugin.v1.StateType
	29, // 20: plugin.v1.Permission.checked_at:type_name -> google.protobuf.Timestamp
	22, // 21: plugin.v1.Permissions.write:type_name -> plugin.v1.Permission
	22, // 22: plugin.v1.Permissions.read:type_name -> plugin.v1.Permission
	22, // 23: plugin.v1.Permissions.delete:type_name -> plugin.v1.Permission
	23, // 24: plugin.v1.StorageBucketCredentialState.state:type_name -> plugin.v1.Permissions
	1,  // 25: plugin.v1.StoragePluginService.NormalizeStorageBucketData:input_type -> plugin.v1.NormalizeStorageBucketDataRequest
	3,  // 26: plugin.v1.StoragePluginService.OnCreateStorageBucket:input_type -> plugin.v1.OnCreateStorageBucketRequest
	5,  // 27: plugin.v1.StoragePluginService.OnUpdateStorageBucket:input_type -> plugin.v1.OnUpdateStorageBucketRequest
	7,  // 28: plugin.v1.StoragePluginService.OnDeleteStorageBucket:input_type -> plugin.v1.OnDeleteStorageBucketRequest
	9,  // 29: plugin.v1.StoragePluginService.ValidatePermissions:input_type -> plugin.v1.ValidatePermissionsRequest
	11, // 30: plugin.v1.StoragePluginService.HeadObject:input_type -> plugin.v1.HeadObjectRequest
	13, // 31: plugin.v1.StoragePluginService.GetObject:input_type -> plugin.v1.GetObjectRequest
	15, // 32: plugin.v1.StoragePluginService.ListObjects:input_type -> plugin.v1.ListObjectsRequest
	18, // 33: plugin.v1.StoragePluginService.PutObject:input_type -> plugin.v1.PutObjectRequest
	20, // 34: plugin.v1.StoragePluginService.DeleteObjects:input_type -> plugin.v1.DeleteObjectsRequest
	2,  // 35: plugin.v1.StoragePluginService.NormalizeStorageBucketData:output_type -> plugin.v1.NormalizeStorageBucketDataResponse
	4,  // 36: plugin.v1.StoragePluginService.OnCreateStorageBucket:output_type -> plugin.v1.OnCreateStorageBucketResponse
	6,  // 37: plugin.v1.StoragePluginService.OnUpdateStorageBucket:output_type -> plugin.v1.OnUpdateStorageBucketResponse
	8,  // 38: plugin.v1.StoragePluginService.OnDeleteStorageBucket:output_type -> plugin.v1.OnDeleteStorageBucketResponse
	10, // 39: plugin.v1.StoragePluginService.ValidatePermissions:output_type -> plugin.v1.ValidatePermissionsResponse
	12, // 40: plugin.v1.StoragePluginService.HeadObject:output_type -> plugin.v1.HeadObjectResponse
	14, // 41: plugin.v1.StoragePluginService.GetObject:output_type -> plugin.v1.GetObjectResponse
	17, // 42: plugin.v1.StoragePluginService.ListObjects:output_type -> plugin.v1.ListObjectsResponse
	19, // 43: plugin.v1.StoragePluginService.PutObject:output_type -> plugin.v1.PutObjectResponse
	21, // 44: plugin.v1.StoragePluginService.DeleteObjects:output_type -> plugin.v1.DeleteObjectsResponse
	35, // [35:45] is the sub-list for method output_type
	25, // [25:35] is the sub-list for method input_type
	25, // [25:25] is the sub-list for extension type_name
	25, // [25:25] is the sub-list for extension extendee
	0,  // [0:25] is the sub-list for field type_name
}

func init() { file_plugin_v1_storage_plugin_service_proto_init() }
func file_plugin_v1_storage_plugin_service_proto_init() {
	if File_plugin_v1_storage_plugin_service_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_plugin_v1_storage_plugin_service_proto_rawDesc), len(file_plugin_v1_storage_plugin_service_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   24,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_plugin_v1_storage_plugin_service_proto_goTypes,
		DependencyIndexes: file_plugin_v1_storage_plugin_service_proto_depIdxs,
		EnumInfos:         file_plugin_v1_storage_plugin_service_proto_enumTypes,
		MessageInfos:      file_plugin_v1_storage_plugin_service_proto_msgTypes,
	}.Build()
	File_plugin_v1_storage_plugin_service_proto = out.File
	file_plugin_v1_storage_plugin_service_proto_goTypes = nil
	file_plugin_v1_storage_plugin_service_proto_depIdxs = nil
}
