// Copyright 2016-2018, Pulumi Corporation. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 // protoc v3.20.1 // source: pulumi/provider.proto package pulumirpc import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" ) 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) ) // The mode that controls how the provider handles the proposed name. If not specified, defaults to `PROPOSE`. // - `PROPOSE`: The provider may use the proposed name as a suggestion but is free to modify it. // - `ENFORCE`: The provider must use exactly the proposed name or return an error. // - `DISABLE`: The provider should disable automatic naming and return an error if no explicit name // is provided by user's program. type CheckRequest_AutonamingOptions_Mode int32 const ( CheckRequest_AutonamingOptions_PROPOSE CheckRequest_AutonamingOptions_Mode = 0 CheckRequest_AutonamingOptions_ENFORCE CheckRequest_AutonamingOptions_Mode = 1 CheckRequest_AutonamingOptions_DISABLE CheckRequest_AutonamingOptions_Mode = 2 ) // Enum value maps for CheckRequest_AutonamingOptions_Mode. var ( CheckRequest_AutonamingOptions_Mode_name = map[int32]string{ 0: "PROPOSE", 1: "ENFORCE", 2: "DISABLE", } CheckRequest_AutonamingOptions_Mode_value = map[string]int32{ "PROPOSE": 0, "ENFORCE": 1, "DISABLE": 2, } ) func (x CheckRequest_AutonamingOptions_Mode) Enum() *CheckRequest_AutonamingOptions_Mode { p := new(CheckRequest_AutonamingOptions_Mode) *p = x return p } func (x CheckRequest_AutonamingOptions_Mode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (CheckRequest_AutonamingOptions_Mode) Descriptor() protoreflect.EnumDescriptor { return file_pulumi_provider_proto_enumTypes[0].Descriptor() } func (CheckRequest_AutonamingOptions_Mode) Type() protoreflect.EnumType { return &file_pulumi_provider_proto_enumTypes[0] } func (x CheckRequest_AutonamingOptions_Mode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use CheckRequest_AutonamingOptions_Mode.Descriptor instead. func (CheckRequest_AutonamingOptions_Mode) EnumDescriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{13, 0, 0} } // The type of property diff kinds. type PropertyDiff_Kind int32 const ( // This property was added. PropertyDiff_ADD PropertyDiff_Kind = 0 // This property was added, and this change requires a replace. PropertyDiff_ADD_REPLACE PropertyDiff_Kind = 1 // This property was removed. PropertyDiff_DELETE PropertyDiff_Kind = 2 // This property was removed, and this change requires a replace. PropertyDiff_DELETE_REPLACE PropertyDiff_Kind = 3 // This property's value was changed. PropertyDiff_UPDATE PropertyDiff_Kind = 4 // This property's value was changed, and this change requires a replace. PropertyDiff_UPDATE_REPLACE PropertyDiff_Kind = 5 ) // Enum value maps for PropertyDiff_Kind. var ( PropertyDiff_Kind_name = map[int32]string{ 0: "ADD", 1: "ADD_REPLACE", 2: "DELETE", 3: "DELETE_REPLACE", 4: "UPDATE", 5: "UPDATE_REPLACE", } PropertyDiff_Kind_value = map[string]int32{ "ADD": 0, "ADD_REPLACE": 1, "DELETE": 2, "DELETE_REPLACE": 3, "UPDATE": 4, "UPDATE_REPLACE": 5, } ) func (x PropertyDiff_Kind) Enum() *PropertyDiff_Kind { p := new(PropertyDiff_Kind) *p = x return p } func (x PropertyDiff_Kind) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PropertyDiff_Kind) Descriptor() protoreflect.EnumDescriptor { return file_pulumi_provider_proto_enumTypes[1].Descriptor() } func (PropertyDiff_Kind) Type() protoreflect.EnumType { return &file_pulumi_provider_proto_enumTypes[1] } func (x PropertyDiff_Kind) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PropertyDiff_Kind.Descriptor instead. func (PropertyDiff_Kind) EnumDescriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{17, 0} } // The type of high-level diff results. type DiffResponse_DiffChanges int32 const ( // A diff was performed but it is unknown whether there are changes or not. This exists to support legacy // behaviour and should be generally avoided wherever possible. DiffResponse_DIFF_UNKNOWN DiffResponse_DiffChanges = 0 // A diff was performed and there were no changes. An update is not required. DiffResponse_DIFF_NONE DiffResponse_DiffChanges = 1 // A diff was performed, and changes were detected that require an update or replacement. DiffResponse_DIFF_SOME DiffResponse_DiffChanges = 2 ) // Enum value maps for DiffResponse_DiffChanges. var ( DiffResponse_DiffChanges_name = map[int32]string{ 0: "DIFF_UNKNOWN", 1: "DIFF_NONE", 2: "DIFF_SOME", } DiffResponse_DiffChanges_value = map[string]int32{ "DIFF_UNKNOWN": 0, "DIFF_NONE": 1, "DIFF_SOME": 2, } ) func (x DiffResponse_DiffChanges) Enum() *DiffResponse_DiffChanges { p := new(DiffResponse_DiffChanges) *p = x return p } func (x DiffResponse_DiffChanges) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DiffResponse_DiffChanges) Descriptor() protoreflect.EnumDescriptor { return file_pulumi_provider_proto_enumTypes[2].Descriptor() } func (DiffResponse_DiffChanges) Type() protoreflect.EnumType { return &file_pulumi_provider_proto_enumTypes[2] } func (x DiffResponse_DiffChanges) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DiffResponse_DiffChanges.Descriptor instead. func (DiffResponse_DiffChanges) EnumDescriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{18, 0} } // `ProviderHandshakeRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Handshake) call. type ProviderHandshakeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The gRPC address of the engine handshaking with the provider. At a minimum, this address will expose an instance // of the [](pulumirpc.Engine) service. EngineAddress string `protobuf:"bytes,1,opt,name=engine_address,json=engineAddress,proto3" json:"engine_address,omitempty"` // A *root directory* where the provider's binary, `PulumiPlugin.yaml`, or other identifying source code is located. // In the event that the provider is *not* being booted by the engine (e.g. in the case that the engine has been // asked to attach to an existing running provider instance via a host/port number), this field will be empty. RootDirectory string `protobuf:"bytes,2,opt,name=root_directory,json=rootDirectory,proto3" json:"root_directory,omitempty"` // A *program directory* in which the provider should execute. This is generally a subdirectory of the root // directory, though this is not required. In the event that the provider is *not* being booted by the engine (e.g. // in the case that the engine has been asked to attach to an existing running provider instance via a host/port // number), this field will be empty. ProgramDirectory string `protobuf:"bytes,3,opt,name=program_directory,json=programDirectory,proto3" json:"program_directory,omitempty"` } func (x *ProviderHandshakeRequest) Reset() { *x = ProviderHandshakeRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProviderHandshakeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProviderHandshakeRequest) ProtoMessage() {} func (x *ProviderHandshakeRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ProviderHandshakeRequest.ProtoReflect.Descriptor instead. func (*ProviderHandshakeRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{0} } func (x *ProviderHandshakeRequest) GetEngineAddress() string { if x != nil { return x.EngineAddress } return "" } func (x *ProviderHandshakeRequest) GetRootDirectory() string { if x != nil { return x.RootDirectory } return "" } func (x *ProviderHandshakeRequest) GetProgramDirectory() string { if x != nil { return x.ProgramDirectory } return "" } // `ProviderHandshakeResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Handshake) call. type ProviderHandshakeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ProviderHandshakeResponse) Reset() { *x = ProviderHandshakeResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProviderHandshakeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProviderHandshakeResponse) ProtoMessage() {} func (x *ProviderHandshakeResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ProviderHandshakeResponse.ProtoReflect.Descriptor instead. func (*ProviderHandshakeResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{1} } // `ParameterizeRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Parameterize) call. A // `ParameterizeRequest` may contain either: // // * a string array (`ParametersArgs`), intended to represent a set of command-line arguments so as to support // instantiating a parameterized provider from a command-line invocation (e.g. to generate an SDK). // * a byte array accompanied by a name and version (`ParametersValue`), intended to represent a parameter embedded in a // previously generated SDK. // // Embedding parameter values in SDKs allows programs to consume parameterized providers without needing to know the // details of the parameterization. Allowing the representation embedded into an SDK to differ from that supplied on the // command-line permits providers to implement optimizations for the common, fast-path case (program execution), such as // embedding a generated schema as opposed to generating it on-demand for each resource registration. type ParameterizeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to Parameters: // *ParameterizeRequest_Args // *ParameterizeRequest_Value Parameters isParameterizeRequest_Parameters `protobuf_oneof:"parameters"` } func (x *ParameterizeRequest) Reset() { *x = ParameterizeRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ParameterizeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ParameterizeRequest) ProtoMessage() {} func (x *ParameterizeRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ParameterizeRequest.ProtoReflect.Descriptor instead. func (*ParameterizeRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{2} } func (m *ParameterizeRequest) GetParameters() isParameterizeRequest_Parameters { if m != nil { return m.Parameters } return nil } func (x *ParameterizeRequest) GetArgs() *ParameterizeRequest_ParametersArgs { if x, ok := x.GetParameters().(*ParameterizeRequest_Args); ok { return x.Args } return nil } func (x *ParameterizeRequest) GetValue() *ParameterizeRequest_ParametersValue { if x, ok := x.GetParameters().(*ParameterizeRequest_Value); ok { return x.Value } return nil } type isParameterizeRequest_Parameters interface { isParameterizeRequest_Parameters() } type ParameterizeRequest_Args struct { // Arguments from the command line. Args *ParameterizeRequest_ParametersArgs `protobuf:"bytes,1,opt,name=args,proto3,oneof"` } type ParameterizeRequest_Value struct { // Values from a generated SDK. Value *ParameterizeRequest_ParametersValue `protobuf:"bytes,2,opt,name=value,proto3,oneof"` } func (*ParameterizeRequest_Args) isParameterizeRequest_Parameters() {} func (*ParameterizeRequest_Value) isParameterizeRequest_Parameters() {} // `ParameterizeResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Parameterize) call. It // contains a name and version that can be used to identify the sub-package that now exists as a result of // parameterization. type ParameterizeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the sub-package parameterized. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The version of the sub-package parameterized. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` } func (x *ParameterizeResponse) Reset() { *x = ParameterizeResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ParameterizeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ParameterizeResponse) ProtoMessage() {} func (x *ParameterizeResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ParameterizeResponse.ProtoReflect.Descriptor instead. func (*ParameterizeResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{3} } func (x *ParameterizeResponse) GetName() string { if x != nil { return x.Name } return "" } func (x *ParameterizeResponse) GetVersion() string { if x != nil { return x.Version } return "" } type GetSchemaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the schema version. Version int32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` // the name of the sub-package to lookup SubpackageName string `protobuf:"bytes,2,opt,name=subpackage_name,json=subpackageName,proto3" json:"subpackage_name,omitempty"` // the version of the sub-package to lookup SubpackageVersion string `protobuf:"bytes,3,opt,name=subpackage_version,json=subpackageVersion,proto3" json:"subpackage_version,omitempty"` } func (x *GetSchemaRequest) Reset() { *x = GetSchemaRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSchemaRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSchemaRequest) ProtoMessage() {} func (x *GetSchemaRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSchemaRequest.ProtoReflect.Descriptor instead. func (*GetSchemaRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{4} } func (x *GetSchemaRequest) GetVersion() int32 { if x != nil { return x.Version } return 0 } func (x *GetSchemaRequest) GetSubpackageName() string { if x != nil { return x.SubpackageName } return "" } func (x *GetSchemaRequest) GetSubpackageVersion() string { if x != nil { return x.SubpackageVersion } return "" } type GetSchemaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Schema string `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"` // the JSON-encoded schema. } func (x *GetSchemaResponse) Reset() { *x = GetSchemaResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetSchemaResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetSchemaResponse) ProtoMessage() {} func (x *GetSchemaResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetSchemaResponse.ProtoReflect.Descriptor instead. func (*GetSchemaResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{5} } func (x *GetSchemaResponse) GetSchema() string { if x != nil { return x.Schema } return "" } // `ConfigureRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Configure) call. Requests // include both provider-specific inputs (`variables` or `args`) and provider-agnostic ("protocol") configuration // (`acceptSecrets`, `acceptResources`, and so on). type ConfigureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // :::{warning} // `variables` is deprecated; `args` should be used instead wherever possible. // ::: // // A map of input properties for the provider. Compound values, such as nested objects, should be JSON encoded so // that they too can be passed as strings. For instance, the following configuration: // // ``` // { // "a": 42, // "b": { // "c": "hello", // "d": true // } // } // ``` // // should be encoded as: // // ``` // { // "a": "42", // "b": "{\"c\":\"hello\",\"d\":true}" // } // ``` Variables map[string]string `protobuf:"bytes,1,rep,name=variables,proto3" json:"variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A map of input properties for the provider. // // :::{warning} // `args` may include secrets. Because `ConfigureRequest` is sent before [](pulumirpc.ConfigureResponse) can specify // whether or not the provider accepts secrets in general, providers *must* handle secrets if they appear in `args`. // ::: Args *structpb.Struct `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` // True if and only if the caller supports secrets. If true, operations should return strongly typed secrets if the // provider supports them also. *Must* be true if the caller has previously called // [](pulumirpc.ResourceProvider.Handshake). AcceptSecrets bool `protobuf:"varint,3,opt,name=acceptSecrets,proto3" json:"acceptSecrets,omitempty"` // True if and only if the caller supports strongly typed resources. If true, operations should return resources as // strongly typed values if the provider supports them also. *Must* be true if the caller has previously called // [](pulumirpc.ResourceProvider.Handshake). AcceptResources bool `protobuf:"varint,4,opt,name=acceptResources,proto3" json:"acceptResources,omitempty"` // True if and only if the caller supports sending old inputs as part of [](pulumirpc.ResourceProvider.Diff) and // [](pulumirpc.ResourceProvider.Update) calls. If true, the provider should expect these fields to be populated in // these calls. *Must* be true if the caller has previously called [](pulumirpc.ResourceProvider.Handshake). SendsOldInputs bool `protobuf:"varint,5,opt,name=sends_old_inputs,json=sendsOldInputs,proto3" json:"sends_old_inputs,omitempty"` // True if and only if the caller supports sending old inputs and outputs as part of // [](pulumirpc.ResourceProvider.Delete) calls. If true, the provider should expect these fields to be populated in // these calls. *Must* be true if the caller has previously called [](pulumirpc.ResourceProvider.Handshake). SendsOldInputsToDelete bool `protobuf:"varint,6,opt,name=sends_old_inputs_to_delete,json=sendsOldInputsToDelete,proto3" json:"sends_old_inputs_to_delete,omitempty"` } func (x *ConfigureRequest) Reset() { *x = ConfigureRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfigureRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfigureRequest) ProtoMessage() {} func (x *ConfigureRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConfigureRequest.ProtoReflect.Descriptor instead. func (*ConfigureRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{6} } func (x *ConfigureRequest) GetVariables() map[string]string { if x != nil { return x.Variables } return nil } func (x *ConfigureRequest) GetArgs() *structpb.Struct { if x != nil { return x.Args } return nil } func (x *ConfigureRequest) GetAcceptSecrets() bool { if x != nil { return x.AcceptSecrets } return false } func (x *ConfigureRequest) GetAcceptResources() bool { if x != nil { return x.AcceptResources } return false } func (x *ConfigureRequest) GetSendsOldInputs() bool { if x != nil { return x.SendsOldInputs } return false } func (x *ConfigureRequest) GetSendsOldInputsToDelete() bool { if x != nil { return x.SendsOldInputsToDelete } return false } // `ConfigureResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Configure) call. Its primary // purpose is to communicate features that the provider supports back to the caller. type ConfigureResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // True if and only if the provider supports secrets. If true, the caller should pass secrets as strongly typed // values to the provider. *Must* be true if the provider implements [](pulumirpc.ResourceProvider.Handshake). AcceptSecrets bool `protobuf:"varint,1,opt,name=acceptSecrets,proto3" json:"acceptSecrets,omitempty"` // True if and only if the provider supports the `preview` field on [](pulumirpc.ResourceProvider.Create) and // [](pulumirpc.ResourceProvider.Update) calls. If true, the engine should invoke these calls with `preview` set to // `true` during previews. *Must* be true if the provider implements [](pulumirpc.ResourceProvider.Handshake). SupportsPreview bool `protobuf:"varint,2,opt,name=supportsPreview,proto3" json:"supportsPreview,omitempty"` // True if and only if the provider supports strongly typed resources. If true, the caller should pass resources as // strongly typed values to the provider. *Must* be true if the provider implements // [](pulumirpc.ResourceProvider.Handshake). AcceptResources bool `protobuf:"varint,3,opt,name=acceptResources,proto3" json:"acceptResources,omitempty"` // True if and only if the provider supports output values as inputs. If true, the engine should pass output values // to the provider where possible. *Must* be true if the provider implements // [](pulumirpc.ResourceProvider.Handshake). AcceptOutputs bool `protobuf:"varint,4,opt,name=acceptOutputs,proto3" json:"acceptOutputs,omitempty"` // True if the provider accepts and respects Autonaming configuration that the engine provides on behalf of user. SupportsAutonamingConfiguration bool `protobuf:"varint,5,opt,name=supports_autonaming_configuration,json=supportsAutonamingConfiguration,proto3" json:"supports_autonaming_configuration,omitempty"` } func (x *ConfigureResponse) Reset() { *x = ConfigureResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfigureResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfigureResponse) ProtoMessage() {} func (x *ConfigureResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConfigureResponse.ProtoReflect.Descriptor instead. func (*ConfigureResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{7} } func (x *ConfigureResponse) GetAcceptSecrets() bool { if x != nil { return x.AcceptSecrets } return false } func (x *ConfigureResponse) GetSupportsPreview() bool { if x != nil { return x.SupportsPreview } return false } func (x *ConfigureResponse) GetAcceptResources() bool { if x != nil { return x.AcceptResources } return false } func (x *ConfigureResponse) GetAcceptOutputs() bool { if x != nil { return x.AcceptOutputs } return false } func (x *ConfigureResponse) GetSupportsAutonamingConfiguration() bool { if x != nil { return x.SupportsAutonamingConfiguration } return false } // `ConfigureErrorMissingKeys` is the type of error details that may be sent in response to a // [](pulumirpc.ResourceProvider.Configure) call when required configuration keys are missing. type ConfigureErrorMissingKeys struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of required configuration keys that were not supplied. MissingKeys []*ConfigureErrorMissingKeys_MissingKey `protobuf:"bytes,1,rep,name=missingKeys,proto3" json:"missingKeys,omitempty"` } func (x *ConfigureErrorMissingKeys) Reset() { *x = ConfigureErrorMissingKeys{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfigureErrorMissingKeys) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfigureErrorMissingKeys) ProtoMessage() {} func (x *ConfigureErrorMissingKeys) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConfigureErrorMissingKeys.ProtoReflect.Descriptor instead. func (*ConfigureErrorMissingKeys) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{8} } func (x *ConfigureErrorMissingKeys) GetMissingKeys() []*ConfigureErrorMissingKeys_MissingKey { if x != nil { return x.MissingKeys } return nil } type InvokeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tok string `protobuf:"bytes,1,opt,name=tok,proto3" json:"tok,omitempty"` // the function token to invoke. Args *structpb.Struct `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` // the arguments for the function invocation. } func (x *InvokeRequest) Reset() { *x = InvokeRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InvokeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvokeRequest) ProtoMessage() {} func (x *InvokeRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvokeRequest.ProtoReflect.Descriptor instead. func (*InvokeRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{9} } func (x *InvokeRequest) GetTok() string { if x != nil { return x.Tok } return "" } func (x *InvokeRequest) GetArgs() *structpb.Struct { if x != nil { return x.Args } return nil } type InvokeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Return *structpb.Struct `protobuf:"bytes,1,opt,name=return,proto3" json:"return,omitempty"` // the returned values, if invoke was successful. Failures []*CheckFailure `protobuf:"bytes,2,rep,name=failures,proto3" json:"failures,omitempty"` // the failures if any arguments didn't pass verification. } func (x *InvokeResponse) Reset() { *x = InvokeResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *InvokeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*InvokeResponse) ProtoMessage() {} func (x *InvokeResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use InvokeResponse.ProtoReflect.Descriptor instead. func (*InvokeResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{10} } func (x *InvokeResponse) GetReturn() *structpb.Struct { if x != nil { return x.Return } return nil } func (x *InvokeResponse) GetFailures() []*CheckFailure { if x != nil { return x.Failures } return nil } type CallRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Tok string `protobuf:"bytes,1,opt,name=tok,proto3" json:"tok,omitempty"` // the function token to invoke. Args *structpb.Struct `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` // the arguments for the function invocation. ArgDependencies map[string]*CallRequest_ArgumentDependencies `protobuf:"bytes,3,rep,name=argDependencies,proto3" json:"argDependencies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // a map from argument keys to the dependencies of the argument. Project string `protobuf:"bytes,6,opt,name=project,proto3" json:"project,omitempty"` // the project name. Stack string `protobuf:"bytes,7,opt,name=stack,proto3" json:"stack,omitempty"` // the name of the stack being deployed into. Config map[string]string `protobuf:"bytes,8,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // the configuration variables to apply before running. ConfigSecretKeys []string `protobuf:"bytes,9,rep,name=configSecretKeys,proto3" json:"configSecretKeys,omitempty"` // the configuration keys that have secret values. DryRun bool `protobuf:"varint,10,opt,name=dryRun,proto3" json:"dryRun,omitempty"` // true if we're only doing a dryrun (preview). Parallel int32 `protobuf:"varint,11,opt,name=parallel,proto3" json:"parallel,omitempty"` // the degree of parallelism for resource operations (<=1 for serial). MonitorEndpoint string `protobuf:"bytes,12,opt,name=monitorEndpoint,proto3" json:"monitorEndpoint,omitempty"` // the address for communicating back to the resource monitor. Organization string `protobuf:"bytes,14,opt,name=organization,proto3" json:"organization,omitempty"` // the organization of the stack being deployed into. AcceptsOutputValues bool `protobuf:"varint,17,opt,name=accepts_output_values,json=acceptsOutputValues,proto3" json:"accepts_output_values,omitempty"` // the engine can be passed output values back, returnDependencies can be left blank if returning output values. } func (x *CallRequest) Reset() { *x = CallRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CallRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CallRequest) ProtoMessage() {} func (x *CallRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CallRequest.ProtoReflect.Descriptor instead. func (*CallRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{11} } func (x *CallRequest) GetTok() string { if x != nil { return x.Tok } return "" } func (x *CallRequest) GetArgs() *structpb.Struct { if x != nil { return x.Args } return nil } func (x *CallRequest) GetArgDependencies() map[string]*CallRequest_ArgumentDependencies { if x != nil { return x.ArgDependencies } return nil } func (x *CallRequest) GetProject() string { if x != nil { return x.Project } return "" } func (x *CallRequest) GetStack() string { if x != nil { return x.Stack } return "" } func (x *CallRequest) GetConfig() map[string]string { if x != nil { return x.Config } return nil } func (x *CallRequest) GetConfigSecretKeys() []string { if x != nil { return x.ConfigSecretKeys } return nil } func (x *CallRequest) GetDryRun() bool { if x != nil { return x.DryRun } return false } func (x *CallRequest) GetParallel() int32 { if x != nil { return x.Parallel } return 0 } func (x *CallRequest) GetMonitorEndpoint() string { if x != nil { return x.MonitorEndpoint } return "" } func (x *CallRequest) GetOrganization() string { if x != nil { return x.Organization } return "" } func (x *CallRequest) GetAcceptsOutputValues() bool { if x != nil { return x.AcceptsOutputValues } return false } type CallResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Return *structpb.Struct `protobuf:"bytes,1,opt,name=return,proto3" json:"return,omitempty"` // the returned values, if call was successful. Failures []*CheckFailure `protobuf:"bytes,3,rep,name=failures,proto3" json:"failures,omitempty"` // the failures if any arguments didn't pass verification. // a map from return value keys to the dependencies of the return value. // // returnDependencies will be augmented by the set of dependencies specified in return // via output property values. ReturnDependencies map[string]*CallResponse_ReturnDependencies `protobuf:"bytes,2,rep,name=returnDependencies,proto3" json:"returnDependencies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *CallResponse) Reset() { *x = CallResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CallResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CallResponse) ProtoMessage() {} func (x *CallResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CallResponse.ProtoReflect.Descriptor instead. func (*CallResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{12} } func (x *CallResponse) GetReturn() *structpb.Struct { if x != nil { return x.Return } return nil } func (x *CallResponse) GetFailures() []*CheckFailure { if x != nil { return x.Failures } return nil } func (x *CallResponse) GetReturnDependencies() map[string]*CallResponse_ReturnDependencies { if x != nil { return x.ReturnDependencies } return nil } // `CheckRequest` is the type of requests sent as part of [](pulumirpc.ResourceProvider.CheckConfig) and // [](pulumirpc.ResourceProvider.Check) calls. A `CheckRequest` primarily captures the URN and inputs of the resource // being checked. In the case of [](pulumirpc.ResourceProvider.CheckConfig), the URN will be the URN of the provider // resource being constructed, which may or may not be a [default provider](default-providers), and the inputs will be // the provider configuration. type CheckRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The URN of the resource whose inputs are being checked. In the case of // [](pulumirpc.ResourceProvider.CheckConfig), this will be the URN of the provider resource being constructed, // which may or may not be a [default provider](default-providers). Urn string `protobuf:"bytes,1,opt,name=urn,proto3" json:"urn,omitempty"` // The old input properties or configuration for the resource, if any. Olds *structpb.Struct `protobuf:"bytes,2,opt,name=olds,proto3" json:"olds,omitempty"` // The new input properties or configuration for the resource, if any. // // :::{note} // If this resource has been specified with the // [`ignoreChanges`](https://www.pulumi.com/docs/concepts/options/ignorechanges/), then the values in `news` may // differ from those written in the Pulumi program registering this resource. In such cases, the caller (e.g. the // Pulumi engine) is expected to preprocess the `news` value by replacing every property matched by `ignoreChanges` // with its corresponding `olds` value (effectively ignoring the change). // ::: News *structpb.Struct `protobuf:"bytes,3,opt,name=news,proto3" json:"news,omitempty"` // A random but deterministically computed hash, intended to be used for generating globally unique names. RandomSeed []byte `protobuf:"bytes,5,opt,name=randomSeed,proto3" json:"randomSeed,omitempty"` // The name of the resource being checked. This must match the name specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being checked. This must match the type specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"` Autonaming *CheckRequest_AutonamingOptions `protobuf:"bytes,8,opt,name=autonaming,proto3" json:"autonaming,omitempty"` } func (x *CheckRequest) Reset() { *x = CheckRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckRequest) ProtoMessage() {} func (x *CheckRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckRequest.ProtoReflect.Descriptor instead. func (*CheckRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{13} } func (x *CheckRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *CheckRequest) GetOlds() *structpb.Struct { if x != nil { return x.Olds } return nil } func (x *CheckRequest) GetNews() *structpb.Struct { if x != nil { return x.News } return nil } func (x *CheckRequest) GetRandomSeed() []byte { if x != nil { return x.RandomSeed } return nil } func (x *CheckRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *CheckRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *CheckRequest) GetAutonaming() *CheckRequest_AutonamingOptions { if x != nil { return x.Autonaming } return nil } // `CheckResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.CheckConfig) or // [](pulumirpc.ResourceProvider.Check) call. A `CheckResponse` may contain either: // // * a set of checked, known-valid `inputs`. In the case of [](pulumirpc.ResourceProvider.CheckConfig), these may // subsequently be passed to [](pulumirpc.ResourceProvider.DiffConfig) and/or // [](pulumirpc.ResourceProvider.Configure). In the case of [](pulumirpc.ResourceProvider.Check), these may be passed // to any of the supported lifecycle methods that accept provider inputs. // * a set of `failures` detailing invalid inputs. // // In cases where the supplied set of inputs is valid, a `CheckResponse` may contain default values that should // persisted to Pulumi state and passed to subsequent calls. type CheckResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A valid, checked set of inputs. May contain defaults. Inputs *structpb.Struct `protobuf:"bytes,1,opt,name=inputs,proto3" json:"inputs,omitempty"` // Any validation failures that occurred. Failures []*CheckFailure `protobuf:"bytes,2,rep,name=failures,proto3" json:"failures,omitempty"` } func (x *CheckResponse) Reset() { *x = CheckResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckResponse) ProtoMessage() {} func (x *CheckResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckResponse.ProtoReflect.Descriptor instead. func (*CheckResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{14} } func (x *CheckResponse) GetInputs() *structpb.Struct { if x != nil { return x.Inputs } return nil } func (x *CheckResponse) GetFailures() []*CheckFailure { if x != nil { return x.Failures } return nil } // A `CheckFailure` describes a single validation error that arose as part of a // [](pulumirpc.ResourceProvider.CheckConfig) or [](pulumirpc.ResourceProvider.Check) call. type CheckFailure struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The input property that failed validation. Property string `protobuf:"bytes,1,opt,name=property,proto3" json:"property,omitempty"` // The reason that the named property failed validation. Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` } func (x *CheckFailure) Reset() { *x = CheckFailure{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckFailure) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckFailure) ProtoMessage() {} func (x *CheckFailure) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckFailure.ProtoReflect.Descriptor instead. func (*CheckFailure) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{15} } func (x *CheckFailure) GetProperty() string { if x != nil { return x.Property } return "" } func (x *CheckFailure) GetReason() string { if x != nil { return x.Reason } return "" } // `DiffRequest` is the type of requests sent as part of [](pulumirpc.ResourceProvider.DiffConfig) and // [](pulumirpc.ResourceProvider.Diff) calls. A `DiffRequest` primarily captures: // // * the URN of the resource whose properties are being compared; // * the old and new input properties of the resource; and // * the old output properties of the resource. // // In the case of [](pulumirpc.ResourceProvider.DiffConfig), the URN will be the URN of the provider resource being // examined, which may or may not be a [default provider](default-providers), and the inputs and outputs will be the // provider configuration and state. Inputs supplied to a [](pulumirpc.ResourceProvider.DiffConfig) call should have // been previously checked by a call to [](pulumirpc.ResourceProvider.CheckConfig); inputs supplied to a // [](pulumirpc.ResourceProvider.Diff) call should have been previously checked by a call to // [](pulumirpc.ResourceProvider.Check). type DiffRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the resource being diffed. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The URN of the resource being diffed. Urn string `protobuf:"bytes,2,opt,name=urn,proto3" json:"urn,omitempty"` // The old *output* properties of the resource being diffed. Olds *structpb.Struct `protobuf:"bytes,3,opt,name=olds,proto3" json:"olds,omitempty"` // The new *input* properties of the resource being diffed. These should have been validated by an appropriate call // to [](pulumirpc.ResourceProvider.CheckConfig) or [](pulumirpc.ResourceProvider.Check). News *structpb.Struct `protobuf:"bytes,4,opt,name=news,proto3" json:"news,omitempty"` // A set of [property paths](property-paths) that should be treated as unchanged. IgnoreChanges []string `protobuf:"bytes,5,rep,name=ignoreChanges,proto3" json:"ignoreChanges,omitempty"` // The old *input* properties of the resource being diffed. OldInputs *structpb.Struct `protobuf:"bytes,6,opt,name=old_inputs,json=oldInputs,proto3" json:"old_inputs,omitempty"` // The name of the resource being diffed. This must match the name specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being diffed. This must match the type specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,8,opt,name=type,proto3" json:"type,omitempty"` } func (x *DiffRequest) Reset() { *x = DiffRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiffRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiffRequest) ProtoMessage() {} func (x *DiffRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiffRequest.ProtoReflect.Descriptor instead. func (*DiffRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{16} } func (x *DiffRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *DiffRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *DiffRequest) GetOlds() *structpb.Struct { if x != nil { return x.Olds } return nil } func (x *DiffRequest) GetNews() *structpb.Struct { if x != nil { return x.News } return nil } func (x *DiffRequest) GetIgnoreChanges() []string { if x != nil { return x.IgnoreChanges } return nil } func (x *DiffRequest) GetOldInputs() *structpb.Struct { if x != nil { return x.OldInputs } return nil } func (x *DiffRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *DiffRequest) GetType() string { if x != nil { return x.Type } return "" } // `PropertyDiff` describes the kind of change that occurred to a property during a diff operation. A `PropertyDiff` may // indicate that a property was added, deleted, or updated, and may further indicate that the change requires a // replacement. type PropertyDiff struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The kind of diff associated with this property. Kind PropertyDiff_Kind `protobuf:"varint,1,opt,name=kind,proto3,enum=pulumirpc.PropertyDiff_Kind" json:"kind,omitempty"` // True if and only if this difference represents one between a pair of old and new inputs, as opposed to a pair of // old and new states. InputDiff bool `protobuf:"varint,2,opt,name=inputDiff,proto3" json:"inputDiff,omitempty"` } func (x *PropertyDiff) Reset() { *x = PropertyDiff{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PropertyDiff) String() string { return protoimpl.X.MessageStringOf(x) } func (*PropertyDiff) ProtoMessage() {} func (x *PropertyDiff) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PropertyDiff.ProtoReflect.Descriptor instead. func (*PropertyDiff) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{17} } func (x *PropertyDiff) GetKind() PropertyDiff_Kind { if x != nil { return x.Kind } return PropertyDiff_ADD } func (x *PropertyDiff) GetInputDiff() bool { if x != nil { return x.InputDiff } return false } // `DiffResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.DiffConfig) or // [](pulumirpc.ResourceProvider.Diff) call. A `DiffResponse` indicates whether a resource is unchanged, requires // updating (that is, can be changed "in place"), or requires replacement (that is, must be destroyed and recreated // anew). Legacy implementations may also signal that it is unknown whether there are changes or not. // // `DiffResponse` has evolved since its inception and there are now a number of ways that providers can signal their // intent to callers: // // * *Simple diffs* utilise the `changes` field to signal which fields are responsible for a change, and the `replaces` // field to further communicate which changes (if any) require a replacement as opposed to an update. // // * *Detailed diffs* are those with `hasDetailedDiff` set, and utilise the `detailedDiff` field to provide a more // granular view of the changes that have occurred. Detailed diffs are designed to allow providers to control // precisely which field names are displayed as responsible for a change, and to signal more accurately what kind of // change occurred (e.g. a field was added, deleted or updated). type DiffResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A set of properties which have changed and whose changes require the resource being diffed to be replaced. The // caller should replace the resource if this set is non-empty, or if any of the properties specified in // `detailedDiff` have a `*_REPLACE` kind. Replaces []string `protobuf:"bytes,1,rep,name=replaces,proto3" json:"replaces,omitempty"` // An optional list of properties that will not ever change (are stable). Stables []string `protobuf:"bytes,2,rep,name=stables,proto3" json:"stables,omitempty"` // If true, this resource must be deleted *before* its replacement is created. DeleteBeforeReplace bool `protobuf:"varint,3,opt,name=deleteBeforeReplace,proto3" json:"deleteBeforeReplace,omitempty"` // The result of the diff. Indicates at a high level whether the resource has changed or not (or, in legacy cases, // if the provider does not know). Changes DiffResponse_DiffChanges `protobuf:"varint,4,opt,name=changes,proto3,enum=pulumirpc.DiffResponse_DiffChanges" json:"changes,omitempty"` // The set of properties which have changed. This field only supports top-level properties. It *does not* support // full [property paths](property-paths); implementations should use `detailedDiff` when this is required. Diffs []string `protobuf:"bytes,5,rep,name=diffs,proto3" json:"diffs,omitempty"` // `detailedDiff` can be used to implement more detailed diffs. A detailed diff is a map from [property // paths](property-paths) to [](pulumirpc.PropertyDiff)s, which describe the kind of change that occurred to the // property located at that path. If a provider does not implement this, the caller (typically the Pulumi engine) // will compute a representation based on the simple diff fields (`changes`, `replaces`, and so on). DetailedDiff map[string]*PropertyDiff `protobuf:"bytes,6,rep,name=detailedDiff,proto3" json:"detailedDiff,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // True if and only if this response contains a `detailedDiff`. HasDetailedDiff bool `protobuf:"varint,7,opt,name=hasDetailedDiff,proto3" json:"hasDetailedDiff,omitempty"` } func (x *DiffResponse) Reset() { *x = DiffResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DiffResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiffResponse) ProtoMessage() {} func (x *DiffResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiffResponse.ProtoReflect.Descriptor instead. func (*DiffResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{18} } func (x *DiffResponse) GetReplaces() []string { if x != nil { return x.Replaces } return nil } func (x *DiffResponse) GetStables() []string { if x != nil { return x.Stables } return nil } func (x *DiffResponse) GetDeleteBeforeReplace() bool { if x != nil { return x.DeleteBeforeReplace } return false } func (x *DiffResponse) GetChanges() DiffResponse_DiffChanges { if x != nil { return x.Changes } return DiffResponse_DIFF_UNKNOWN } func (x *DiffResponse) GetDiffs() []string { if x != nil { return x.Diffs } return nil } func (x *DiffResponse) GetDetailedDiff() map[string]*PropertyDiff { if x != nil { return x.DetailedDiff } return nil } func (x *DiffResponse) GetHasDetailedDiff() bool { if x != nil { return x.HasDetailedDiff } return false } // `CreateRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Create) call. type CreateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The URN of the resource being created. Urn string `protobuf:"bytes,1,opt,name=urn,proto3" json:"urn,omitempty"` // The resource's input properties, to be set during creation. These should have been validated by a call to // [](pulumirpc.ResourceProvider.Check). Properties *structpb.Struct `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` // A timeout in seconds that the caller is prepared to wait for the operation to complete. Timeout float64 `protobuf:"fixed64,3,opt,name=timeout,proto3" json:"timeout,omitempty"` // True if and only if the request is being made as part of a preview/dry run, in which case the provider should not // actually create the resource. Preview bool `protobuf:"varint,4,opt,name=preview,proto3" json:"preview,omitempty"` // The name of the resource being created. This must match the name specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being created. This must match the type specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` } func (x *CreateRequest) Reset() { *x = CreateRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateRequest) ProtoMessage() {} func (x *CreateRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateRequest.ProtoReflect.Descriptor instead. func (*CreateRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{19} } func (x *CreateRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *CreateRequest) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } func (x *CreateRequest) GetTimeout() float64 { if x != nil { return x.Timeout } return 0 } func (x *CreateRequest) GetPreview() bool { if x != nil { return x.Preview } return false } func (x *CreateRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateRequest) GetType() string { if x != nil { return x.Type } return "" } // `CreateResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Create) call. A `CreateResponse` // contains the ID of the created resource, as well as any output properties that arose from the creation process. type CreateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the created resource. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The resource's output properties. Typically this will be a union of the resource's input properties and any // additional values that were computed or made available during creation. Properties *structpb.Struct `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` } func (x *CreateResponse) Reset() { *x = CreateResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateResponse) ProtoMessage() {} func (x *CreateResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateResponse.ProtoReflect.Descriptor instead. func (*CreateResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{20} } func (x *CreateResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *CreateResponse) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } // `ReadRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Read) call. type ReadRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the resource to read. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The URN of the resource being read. Urn string `protobuf:"bytes,2,opt,name=urn,proto3" json:"urn,omitempty"` // Any current state for the resource being read. This state should be sufficient to uniquely identify the resource. Properties *structpb.Struct `protobuf:"bytes,3,opt,name=properties,proto3" json:"properties,omitempty"` // Any current input properties for the resource being read. These will only be populated when the // [](pulumirpc.ResourceProvider.Read) call is being made as part of a refresh operation. Inputs *structpb.Struct `protobuf:"bytes,4,opt,name=inputs,proto3" json:"inputs,omitempty"` // The name of the resource being read. This must match the name specified by the `urn` field, and is passed so that // providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being read. This must match the type specified by the `urn` field, and is passed so that // providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,6,opt,name=type,proto3" json:"type,omitempty"` } func (x *ReadRequest) Reset() { *x = ReadRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadRequest) ProtoMessage() {} func (x *ReadRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReadRequest.ProtoReflect.Descriptor instead. func (*ReadRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{21} } func (x *ReadRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *ReadRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *ReadRequest) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } func (x *ReadRequest) GetInputs() *structpb.Struct { if x != nil { return x.Inputs } return nil } func (x *ReadRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *ReadRequest) GetType() string { if x != nil { return x.Type } return "" } // `ReadResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Read) call. A `ReadResponse` contains // the ID of the resource being read, as well as any state that was successfully read from the live environment. type ReadResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the read resource. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The output properties of the resource read from the live environment. Properties *structpb.Struct `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` // Output-derived input properties for the resource. These are returned as they would be returned from a // [](pulumirpc.ResourceProvider.Check) call with the same values. Inputs *structpb.Struct `protobuf:"bytes,3,opt,name=inputs,proto3" json:"inputs,omitempty"` } func (x *ReadResponse) Reset() { *x = ReadResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReadResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReadResponse) ProtoMessage() {} func (x *ReadResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReadResponse.ProtoReflect.Descriptor instead. func (*ReadResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{22} } func (x *ReadResponse) GetId() string { if x != nil { return x.Id } return "" } func (x *ReadResponse) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } func (x *ReadResponse) GetInputs() *structpb.Struct { if x != nil { return x.Inputs } return nil } // `UpdateRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Update) call. type UpdateRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the resource being updated. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The URN of the resource being updated. Urn string `protobuf:"bytes,2,opt,name=urn,proto3" json:"urn,omitempty"` // The old *output* properties of the resource being updated. Olds *structpb.Struct `protobuf:"bytes,3,opt,name=olds,proto3" json:"olds,omitempty"` // The new input properties of the resource being updated. These should have been validated by a call to // [](pulumirpc.ResourceProvider.Check). News *structpb.Struct `protobuf:"bytes,4,opt,name=news,proto3" json:"news,omitempty"` // A timeout in seconds that the caller is prepared to wait for the operation to complete. Timeout float64 `protobuf:"fixed64,5,opt,name=timeout,proto3" json:"timeout,omitempty"` // A set of [property paths](property-paths) that should be treated as unchanged. IgnoreChanges []string `protobuf:"bytes,6,rep,name=ignoreChanges,proto3" json:"ignoreChanges,omitempty"` // True if and only if the request is being made as part of a preview/dry run, in which case the provider should not // actually update the resource. Preview bool `protobuf:"varint,7,opt,name=preview,proto3" json:"preview,omitempty"` // The old *input* properties of the resource being updated. OldInputs *structpb.Struct `protobuf:"bytes,8,opt,name=old_inputs,json=oldInputs,proto3" json:"old_inputs,omitempty"` // The name of the resource being updated. This must match the name specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,9,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being updated. This must match the type specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,10,opt,name=type,proto3" json:"type,omitempty"` } func (x *UpdateRequest) Reset() { *x = UpdateRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateRequest) ProtoMessage() {} func (x *UpdateRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead. func (*UpdateRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{23} } func (x *UpdateRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *UpdateRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *UpdateRequest) GetOlds() *structpb.Struct { if x != nil { return x.Olds } return nil } func (x *UpdateRequest) GetNews() *structpb.Struct { if x != nil { return x.News } return nil } func (x *UpdateRequest) GetTimeout() float64 { if x != nil { return x.Timeout } return 0 } func (x *UpdateRequest) GetIgnoreChanges() []string { if x != nil { return x.IgnoreChanges } return nil } func (x *UpdateRequest) GetPreview() bool { if x != nil { return x.Preview } return false } func (x *UpdateRequest) GetOldInputs() *structpb.Struct { if x != nil { return x.OldInputs } return nil } func (x *UpdateRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateRequest) GetType() string { if x != nil { return x.Type } return "" } // `UpdateResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Update) call. type UpdateResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // An updated set of resource output properties. Typically this will be a union of the resource's inputs and any // additional values that were computed or made available during the update. Properties *structpb.Struct `protobuf:"bytes,1,opt,name=properties,proto3" json:"properties,omitempty"` } func (x *UpdateResponse) Reset() { *x = UpdateResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateResponse) ProtoMessage() {} func (x *UpdateResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead. func (*UpdateResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{24} } func (x *UpdateResponse) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } // `DeleteRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Delete) call. type DeleteRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The ID of the resource to delete. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // The URN of the resource to delete. Urn string `protobuf:"bytes,2,opt,name=urn,proto3" json:"urn,omitempty"` // The old *output* properties of the resource being deleted. Properties *structpb.Struct `protobuf:"bytes,3,opt,name=properties,proto3" json:"properties,omitempty"` // A timeout in seconds that the caller is prepared to wait for the operation to complete. Timeout float64 `protobuf:"fixed64,4,opt,name=timeout,proto3" json:"timeout,omitempty"` // The old *input* properties of the resource being deleted. OldInputs *structpb.Struct `protobuf:"bytes,5,opt,name=old_inputs,json=oldInputs,proto3" json:"old_inputs,omitempty"` // the old input values of the resource to delete. // The name of the resource being deleted. This must match the name specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,6,opt,name=name,proto3" json:"name,omitempty"` // The type of the resource being deleted. This must match the type specified by the `urn` field, and is passed so // that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"` } func (x *DeleteRequest) Reset() { *x = DeleteRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteRequest) ProtoMessage() {} func (x *DeleteRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DeleteRequest.ProtoReflect.Descriptor instead. func (*DeleteRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{25} } func (x *DeleteRequest) GetId() string { if x != nil { return x.Id } return "" } func (x *DeleteRequest) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *DeleteRequest) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } func (x *DeleteRequest) GetTimeout() float64 { if x != nil { return x.Timeout } return 0 } func (x *DeleteRequest) GetOldInputs() *structpb.Struct { if x != nil { return x.OldInputs } return nil } func (x *DeleteRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *DeleteRequest) GetType() string { if x != nil { return x.Type } return "" } // `ConstructRequest` is the type of requests sent as part of a [](pulumirpc.ResourceProvider.Construct) call. A // `ConstructRequest` captures enough data to be able to register nested components against the caller's resource // monitor. type ConstructRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The project to which this resource and its nested resources will belong. Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` // The name of the stack being deployed into. Stack string `protobuf:"bytes,2,opt,name=stack,proto3" json:"stack,omitempty"` // Configuration for the specified project and stack. Config map[string]string `protobuf:"bytes,3,rep,name=config,proto3" json:"config,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // True if and only if the request is being made as part of a preview/dry run, in which case the provider should not // actually construct the component. DryRun bool `protobuf:"varint,4,opt,name=dryRun,proto3" json:"dryRun,omitempty"` // The degree of parallelism that may be used for resource operations. A value less than or equal to 1 indicates // that operations should be performed serially. Parallel int32 `protobuf:"varint,5,opt,name=parallel,proto3" json:"parallel,omitempty"` // The address of the [](pulumirpc.ResourceMonitor) that the provider should connect to in order to send [resource // registrations](resource-registration) for its nested resources. MonitorEndpoint string `protobuf:"bytes,6,opt,name=monitorEndpoint,proto3" json:"monitorEndpoint,omitempty"` // The type of the component resource being constructed. This must match the type specified by the `urn` field, and // is passed so that providers do not have to implement URN parsing in order to extract the type of the resource. Type string `protobuf:"bytes,7,opt,name=type,proto3" json:"type,omitempty"` // The name of the component resource being constructed. This must match the name specified by the `urn` field, and // is passed so that providers do not have to implement URN parsing in order to extract the name of the resource. Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` // An optional parent resource that the component (and by extension, its nested resources) should be children of. Parent string `protobuf:"bytes,9,opt,name=parent,proto3" json:"parent,omitempty"` // The component resource's input properties. Unlike the inputs of custom resources, these will *not* have been // passed to a call to [](pulumirpc.ResourceProvider.Check). By virtue of their being a composition of other // resources, component resources are able to (and therefore expected) to validate their own inputs. Moreover, // [](pulumirpc.ResourceProvider.Check) will be called on any inputs passed to nested custom resources as usual. Inputs *structpb.Struct `protobuf:"bytes,10,opt,name=inputs,proto3" json:"inputs,omitempty"` // A map of property dependencies for the component resource and its nested resources. InputDependencies map[string]*ConstructRequest_PropertyDependencies `protobuf:"bytes,11,rep,name=inputDependencies,proto3" json:"inputDependencies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A map of package names to provider references for the component resource and its nested resources. Providers map[string]string `protobuf:"bytes,13,rep,name=providers,proto3" json:"providers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A list of URNs that this resource and its nested resources depend on. Dependencies []string `protobuf:"bytes,15,rep,name=dependencies,proto3" json:"dependencies,omitempty"` // A set of configuration keys whose values are [secret](output-secrets). ConfigSecretKeys []string `protobuf:"bytes,16,rep,name=configSecretKeys,proto3" json:"configSecretKeys,omitempty"` // The organization to which this resource and its nested resources will belong. Organization string `protobuf:"bytes,17,opt,name=organization,proto3" json:"organization,omitempty"` // True if and only if the resource (and by extension, its nested resources) should be marked as protected. // Protected resources cannot be deleted without first being unprotected. Protect bool `protobuf:"varint,12,opt,name=protect,proto3" json:"protect,omitempty"` // A list of additional URNs that should be considered the same as this component's URN (and which will therefore be // used to build aliases for its nested resource URNs). These may be URNs that previously referred to this component // e.g. if it had its parent (and consequently URN) changed. Aliases []string `protobuf:"bytes,14,rep,name=aliases,proto3" json:"aliases,omitempty"` // A list of input properties whose values should be treated as [secret](output-secrets). AdditionalSecretOutputs []string `protobuf:"bytes,18,rep,name=additionalSecretOutputs,proto3" json:"additionalSecretOutputs,omitempty"` // A set of custom timeouts that specify how long the caller is prepared to wait for the various CRUD operations of // this resource's nested resources. CustomTimeouts *ConstructRequest_CustomTimeouts `protobuf:"bytes,19,opt,name=customTimeouts,proto3" json:"customTimeouts,omitempty"` // The URN of a resource that this resource (and thus its nested resources) will be implicitly deleted with. If the // resource referred to by this URN is deleted in the same operation that this resource would be deleted, the // [](pulumirpc.ResourceProvider.Delete) call for this resource will be elided (since this dependency signals that // it will have already been deleted). DeletedWith string `protobuf:"bytes,20,opt,name=deletedWith,proto3" json:"deletedWith,omitempty"` // If true, this resource (and its nested resources) must be deleted *before* its replacement is created. DeleteBeforeReplace bool `protobuf:"varint,21,opt,name=deleteBeforeReplace,proto3" json:"deleteBeforeReplace,omitempty"` // A set of [property paths](property-paths) that should be treated as unchanged. IgnoreChanges []string `protobuf:"bytes,22,rep,name=ignoreChanges,proto3" json:"ignoreChanges,omitempty"` // A set of properties that, when changed, trigger a replacement. ReplaceOnChanges []string `protobuf:"bytes,23,rep,name=replaceOnChanges,proto3" json:"replaceOnChanges,omitempty"` // True if [](pulumirpc.ResourceProvider.Delete) should *not* be called when the resource (and by extension, its // nested resources) are removed from a Pulumi program. RetainOnDelete bool `protobuf:"varint,24,opt,name=retainOnDelete,proto3" json:"retainOnDelete,omitempty"` // True if the caller is capable of accepting output values in response to the call. If this is set, these outputs // may be used to communicate dependency information and so there is no need to populate // [](pulumirpc.ConstructResponse)'s `stateDependencies` field. AcceptsOutputValues bool `protobuf:"varint,25,opt,name=accepts_output_values,json=acceptsOutputValues,proto3" json:"accepts_output_values,omitempty"` } func (x *ConstructRequest) Reset() { *x = ConstructRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConstructRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConstructRequest) ProtoMessage() {} func (x *ConstructRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConstructRequest.ProtoReflect.Descriptor instead. func (*ConstructRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{26} } func (x *ConstructRequest) GetProject() string { if x != nil { return x.Project } return "" } func (x *ConstructRequest) GetStack() string { if x != nil { return x.Stack } return "" } func (x *ConstructRequest) GetConfig() map[string]string { if x != nil { return x.Config } return nil } func (x *ConstructRequest) GetDryRun() bool { if x != nil { return x.DryRun } return false } func (x *ConstructRequest) GetParallel() int32 { if x != nil { return x.Parallel } return 0 } func (x *ConstructRequest) GetMonitorEndpoint() string { if x != nil { return x.MonitorEndpoint } return "" } func (x *ConstructRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *ConstructRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *ConstructRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *ConstructRequest) GetInputs() *structpb.Struct { if x != nil { return x.Inputs } return nil } func (x *ConstructRequest) GetInputDependencies() map[string]*ConstructRequest_PropertyDependencies { if x != nil { return x.InputDependencies } return nil } func (x *ConstructRequest) GetProviders() map[string]string { if x != nil { return x.Providers } return nil } func (x *ConstructRequest) GetDependencies() []string { if x != nil { return x.Dependencies } return nil } func (x *ConstructRequest) GetConfigSecretKeys() []string { if x != nil { return x.ConfigSecretKeys } return nil } func (x *ConstructRequest) GetOrganization() string { if x != nil { return x.Organization } return "" } func (x *ConstructRequest) GetProtect() bool { if x != nil { return x.Protect } return false } func (x *ConstructRequest) GetAliases() []string { if x != nil { return x.Aliases } return nil } func (x *ConstructRequest) GetAdditionalSecretOutputs() []string { if x != nil { return x.AdditionalSecretOutputs } return nil } func (x *ConstructRequest) GetCustomTimeouts() *ConstructRequest_CustomTimeouts { if x != nil { return x.CustomTimeouts } return nil } func (x *ConstructRequest) GetDeletedWith() string { if x != nil { return x.DeletedWith } return "" } func (x *ConstructRequest) GetDeleteBeforeReplace() bool { if x != nil { return x.DeleteBeforeReplace } return false } func (x *ConstructRequest) GetIgnoreChanges() []string { if x != nil { return x.IgnoreChanges } return nil } func (x *ConstructRequest) GetReplaceOnChanges() []string { if x != nil { return x.ReplaceOnChanges } return nil } func (x *ConstructRequest) GetRetainOnDelete() bool { if x != nil { return x.RetainOnDelete } return false } func (x *ConstructRequest) GetAcceptsOutputValues() bool { if x != nil { return x.AcceptsOutputValues } return false } // `ConstructResponse` is the type of responses sent by a [](pulumirpc.ResourceProvider.Construct) call. type ConstructResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The URN of the constructed component resource. Urn string `protobuf:"bytes,1,opt,name=urn,proto3" json:"urn,omitempty"` // Any output properties that the component registered as part of its construction. State *structpb.Struct `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"` // A map of property dependencies for the component's outputs. This will be set if the caller indicated that it // could not receive dependency-communicating [output](outputs) values by setting [](pulumirpc.ConstructRequest)'s // `accepts_output_values` field to false. StateDependencies map[string]*ConstructResponse_PropertyDependencies `protobuf:"bytes,3,rep,name=stateDependencies,proto3" json:"stateDependencies,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *ConstructResponse) Reset() { *x = ConstructResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConstructResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConstructResponse) ProtoMessage() {} func (x *ConstructResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConstructResponse.ProtoReflect.Descriptor instead. func (*ConstructResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{27} } func (x *ConstructResponse) GetUrn() string { if x != nil { return x.Urn } return "" } func (x *ConstructResponse) GetState() *structpb.Struct { if x != nil { return x.State } return nil } func (x *ConstructResponse) GetStateDependencies() map[string]*ConstructResponse_PropertyDependencies { if x != nil { return x.StateDependencies } return nil } // ErrorResourceInitFailed is sent as a Detail `ResourceProvider.{Create, Update}` fail because a // resource was created successfully, but failed to initialize. type ErrorResourceInitFailed struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // the ID of the created resource. Properties *structpb.Struct `protobuf:"bytes,2,opt,name=properties,proto3" json:"properties,omitempty"` // any properties that were computed during updating. Reasons []string `protobuf:"bytes,3,rep,name=reasons,proto3" json:"reasons,omitempty"` // error messages associated with initialization failure. Inputs *structpb.Struct `protobuf:"bytes,4,opt,name=inputs,proto3" json:"inputs,omitempty"` // the current inputs to this resource (only applicable for Read) } func (x *ErrorResourceInitFailed) Reset() { *x = ErrorResourceInitFailed{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ErrorResourceInitFailed) String() string { return protoimpl.X.MessageStringOf(x) } func (*ErrorResourceInitFailed) ProtoMessage() {} func (x *ErrorResourceInitFailed) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ErrorResourceInitFailed.ProtoReflect.Descriptor instead. func (*ErrorResourceInitFailed) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{28} } func (x *ErrorResourceInitFailed) GetId() string { if x != nil { return x.Id } return "" } func (x *ErrorResourceInitFailed) GetProperties() *structpb.Struct { if x != nil { return x.Properties } return nil } func (x *ErrorResourceInitFailed) GetReasons() []string { if x != nil { return x.Reasons } return nil } func (x *ErrorResourceInitFailed) GetInputs() *structpb.Struct { if x != nil { return x.Inputs } return nil } // GetMappingRequest allows providers to return ecosystem specific information to allow the provider to be // converted from a source markup to Pulumi. It's expected that provider bridges that target a given ecosystem // (e.g. Terraform, Kubernetes) would also publish a conversion plugin to convert markup from that ecosystem // to Pulumi, using the bridged providers. type GetMappingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the conversion key for the mapping being requested. Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` // the optional provider key for the mapping being requested, if this is empty the provider should assume this // request is from an old engine from before GetMappings and should return it's "primary" mapping. If this is set // then the `provider` field in GetMappingResponse should be the same. Provider string `protobuf:"bytes,2,opt,name=provider,proto3" json:"provider,omitempty"` } func (x *GetMappingRequest) Reset() { *x = GetMappingRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMappingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMappingRequest) ProtoMessage() {} func (x *GetMappingRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMappingRequest.ProtoReflect.Descriptor instead. func (*GetMappingRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{29} } func (x *GetMappingRequest) GetKey() string { if x != nil { return x.Key } return "" } func (x *GetMappingRequest) GetProvider() string { if x != nil { return x.Provider } return "" } // GetMappingResponse returns convert plugin specific data for this provider. This will normally be human // readable JSON, but the engine doesn't mandate any form. type GetMappingResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the provider key this is mapping for. For example the Pulumi provider "terraform-template" would return "template" for this. Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"` // the conversion plugin specific data. Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetMappingResponse) Reset() { *x = GetMappingResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMappingResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMappingResponse) ProtoMessage() {} func (x *GetMappingResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMappingResponse.ProtoReflect.Descriptor instead. func (*GetMappingResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{30} } func (x *GetMappingResponse) GetProvider() string { if x != nil { return x.Provider } return "" } func (x *GetMappingResponse) GetData() []byte { if x != nil { return x.Data } return nil } // GetMappingsRequest allows providers to return ecosystem specific information without having to send back large data // blobs for provider mappings that the engine doesn't then need. type GetMappingsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the conversion key for the mapping being requested. Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` } func (x *GetMappingsRequest) Reset() { *x = GetMappingsRequest{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMappingsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMappingsRequest) ProtoMessage() {} func (x *GetMappingsRequest) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMappingsRequest.ProtoReflect.Descriptor instead. func (*GetMappingsRequest) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{31} } func (x *GetMappingsRequest) GetKey() string { if x != nil { return x.Key } return "" } // GetMappingsRequest returns a list of providers that this provider can provide mapping information for. type GetMappingsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // the provider keys this provider can supply mappings for. For example the Pulumi provider "terraform-template" // would return ["template"] for this. Providers []string `protobuf:"bytes,1,rep,name=providers,proto3" json:"providers,omitempty"` } func (x *GetMappingsResponse) Reset() { *x = GetMappingsResponse{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMappingsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMappingsResponse) ProtoMessage() {} func (x *GetMappingsResponse) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMappingsResponse.ProtoReflect.Descriptor instead. func (*GetMappingsResponse) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{32} } func (x *GetMappingsResponse) GetProviders() []string { if x != nil { return x.Providers } return nil } // A parameter value, represented as an array of strings, as might be provided by a command-line invocation, such as // that used to generate an SDK. type ParameterizeRequest_ParametersArgs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Args []string `protobuf:"bytes,1,rep,name=args,proto3" json:"args,omitempty"` } func (x *ParameterizeRequest_ParametersArgs) Reset() { *x = ParameterizeRequest_ParametersArgs{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ParameterizeRequest_ParametersArgs) String() string { return protoimpl.X.MessageStringOf(x) } func (*ParameterizeRequest_ParametersArgs) ProtoMessage() {} func (x *ParameterizeRequest_ParametersArgs) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ParameterizeRequest_ParametersArgs.ProtoReflect.Descriptor instead. func (*ParameterizeRequest_ParametersArgs) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{2, 0} } func (x *ParameterizeRequest_ParametersArgs) GetArgs() []string { if x != nil { return x.Args } return nil } // A parameter value, represented by an arbitrary array of bytes accompanied by a name and version. This is expected // to be the format used by parameterized provider SDKs. type ParameterizeRequest_ParametersValue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The sub-package name for this sub-schema parameterization. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // The sub-package version for this sub-schema parameterization. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` // The embedded value from the sub-package. Value []byte `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` } func (x *ParameterizeRequest_ParametersValue) Reset() { *x = ParameterizeRequest_ParametersValue{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ParameterizeRequest_ParametersValue) String() string { return protoimpl.X.MessageStringOf(x) } func (*ParameterizeRequest_ParametersValue) ProtoMessage() {} func (x *ParameterizeRequest_ParametersValue) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ParameterizeRequest_ParametersValue.ProtoReflect.Descriptor instead. func (*ParameterizeRequest_ParametersValue) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{2, 1} } func (x *ParameterizeRequest_ParametersValue) GetName() string { if x != nil { return x.Name } return "" } func (x *ParameterizeRequest_ParametersValue) GetVersion() string { if x != nil { return x.Version } return "" } func (x *ParameterizeRequest_ParametersValue) GetValue() []byte { if x != nil { return x.Value } return nil } // The type of key-value pairs representing keys that are missing from a [](pulumirpc.ResourceProvider.Configure) // call. type ConfigureErrorMissingKeys_MissingKey struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The name of the missing configuration key. // // :::{note} // This should be the *Pulumi name* of the missing key, and not any provider-internal or upstream name. Names // that differ between Pulumi and an upstream provider should be translated prior to being returned. // ::: Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // A description of the missing config key, as reported by the provider. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` } func (x *ConfigureErrorMissingKeys_MissingKey) Reset() { *x = ConfigureErrorMissingKeys_MissingKey{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConfigureErrorMissingKeys_MissingKey) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConfigureErrorMissingKeys_MissingKey) ProtoMessage() {} func (x *ConfigureErrorMissingKeys_MissingKey) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConfigureErrorMissingKeys_MissingKey.ProtoReflect.Descriptor instead. func (*ConfigureErrorMissingKeys_MissingKey) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{8, 0} } func (x *ConfigureErrorMissingKeys_MissingKey) GetName() string { if x != nil { return x.Name } return "" } func (x *ConfigureErrorMissingKeys_MissingKey) GetDescription() string { if x != nil { return x.Description } return "" } // ArgumentDependencies describes the resources that a particular argument depends on. type CallRequest_ArgumentDependencies struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Urns []string `protobuf:"bytes,1,rep,name=urns,proto3" json:"urns,omitempty"` // A list of URNs this argument depends on. } func (x *CallRequest_ArgumentDependencies) Reset() { *x = CallRequest_ArgumentDependencies{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CallRequest_ArgumentDependencies) String() string { return protoimpl.X.MessageStringOf(x) } func (*CallRequest_ArgumentDependencies) ProtoMessage() {} func (x *CallRequest_ArgumentDependencies) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CallRequest_ArgumentDependencies.ProtoReflect.Descriptor instead. func (*CallRequest_ArgumentDependencies) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{11, 0} } func (x *CallRequest_ArgumentDependencies) GetUrns() []string { if x != nil { return x.Urns } return nil } // ReturnDependencies describes the resources that a particular return value depends on. type CallResponse_ReturnDependencies struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Urns []string `protobuf:"bytes,1,rep,name=urns,proto3" json:"urns,omitempty"` // A list of URNs this return value depends on. } func (x *CallResponse_ReturnDependencies) Reset() { *x = CallResponse_ReturnDependencies{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CallResponse_ReturnDependencies) String() string { return protoimpl.X.MessageStringOf(x) } func (*CallResponse_ReturnDependencies) ProtoMessage() {} func (x *CallResponse_ReturnDependencies) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CallResponse_ReturnDependencies.ProtoReflect.Descriptor instead. func (*CallResponse_ReturnDependencies) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{12, 0} } func (x *CallResponse_ReturnDependencies) GetUrns() []string { if x != nil { return x.Urns } return nil } // Configuration for automatic resource naming behavior. This structure contains fields that control how the provider // handles resource names, including proposed names and naming modes. type CheckRequest_AutonamingOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The proposed name for the resource being checked. This may be used by the provider as a suggestion // for the final resource name, depending on the specified mode. ProposedName string `protobuf:"bytes,1,opt,name=proposed_name,json=proposedName,proto3" json:"proposed_name,omitempty"` Mode CheckRequest_AutonamingOptions_Mode `protobuf:"varint,2,opt,name=mode,proto3,enum=pulumirpc.CheckRequest_AutonamingOptions_Mode" json:"mode,omitempty"` } func (x *CheckRequest_AutonamingOptions) Reset() { *x = CheckRequest_AutonamingOptions{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckRequest_AutonamingOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckRequest_AutonamingOptions) ProtoMessage() {} func (x *CheckRequest_AutonamingOptions) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CheckRequest_AutonamingOptions.ProtoReflect.Descriptor instead. func (*CheckRequest_AutonamingOptions) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{13, 0} } func (x *CheckRequest_AutonamingOptions) GetProposedName() string { if x != nil { return x.ProposedName } return "" } func (x *CheckRequest_AutonamingOptions) GetMode() CheckRequest_AutonamingOptions_Mode { if x != nil { return x.Mode } return CheckRequest_AutonamingOptions_PROPOSE } // A `PropertyDependencies` list is a set of URNs that a particular property may depend on. type ConstructRequest_PropertyDependencies struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of URNs that this property depends on. Urns []string `protobuf:"bytes,1,rep,name=urns,proto3" json:"urns,omitempty"` } func (x *ConstructRequest_PropertyDependencies) Reset() { *x = ConstructRequest_PropertyDependencies{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConstructRequest_PropertyDependencies) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConstructRequest_PropertyDependencies) ProtoMessage() {} func (x *ConstructRequest_PropertyDependencies) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConstructRequest_PropertyDependencies.ProtoReflect.Descriptor instead. func (*ConstructRequest_PropertyDependencies) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{26, 0} } func (x *ConstructRequest_PropertyDependencies) GetUrns() []string { if x != nil { return x.Urns } return nil } // A `CustomTimeouts` object encapsulates a set of timeouts for the various CRUD operations that might be performed // on this resource's nested resources. Timeout values are specified as duration strings, such as `"5ms"` (5 // milliseconds), `"40s"` (40 seconds), or `"1m30s"` (1 minute and 30 seconds). The following units of time are // supported: // // * `ns`: nanoseconds // * `us` or `µs`: microseconds // * `ms`: milliseconds // * `s`: seconds // * `m`: minutes // * `h`: hours type ConstructRequest_CustomTimeouts struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // How long a caller is prepared to wait for a nested resource's [](pulumirpc.ResourceProvider.Create) operation // to complete. Create string `protobuf:"bytes,1,opt,name=create,proto3" json:"create,omitempty"` // How long a caller is prepared to wait for a nested resource's [](pulumirpc.ResourceProvider.Update) operation // to complete. Update string `protobuf:"bytes,2,opt,name=update,proto3" json:"update,omitempty"` // How long a caller is prepared to wait for a nested resource's [](pulumirpc.ResourceProvider.Delete) operation // to complete. Delete string `protobuf:"bytes,3,opt,name=delete,proto3" json:"delete,omitempty"` } func (x *ConstructRequest_CustomTimeouts) Reset() { *x = ConstructRequest_CustomTimeouts{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConstructRequest_CustomTimeouts) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConstructRequest_CustomTimeouts) ProtoMessage() {} func (x *ConstructRequest_CustomTimeouts) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConstructRequest_CustomTimeouts.ProtoReflect.Descriptor instead. func (*ConstructRequest_CustomTimeouts) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{26, 1} } func (x *ConstructRequest_CustomTimeouts) GetCreate() string { if x != nil { return x.Create } return "" } func (x *ConstructRequest_CustomTimeouts) GetUpdate() string { if x != nil { return x.Update } return "" } func (x *ConstructRequest_CustomTimeouts) GetDelete() string { if x != nil { return x.Delete } return "" } // A `PropertyDependencies` list is a set of URNs that a particular property may depend on. type ConstructResponse_PropertyDependencies struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of URNs that this property depends on. Urns []string `protobuf:"bytes,1,rep,name=urns,proto3" json:"urns,omitempty"` } func (x *ConstructResponse_PropertyDependencies) Reset() { *x = ConstructResponse_PropertyDependencies{} if protoimpl.UnsafeEnabled { mi := &file_pulumi_provider_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConstructResponse_PropertyDependencies) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConstructResponse_PropertyDependencies) ProtoMessage() {} func (x *ConstructResponse_PropertyDependencies) ProtoReflect() protoreflect.Message { mi := &file_pulumi_provider_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ConstructResponse_PropertyDependencies.ProtoReflect.Descriptor instead. func (*ConstructResponse_PropertyDependencies) Descriptor() ([]byte, []int) { return file_pulumi_provider_proto_rawDescGZIP(), []int{27, 0} } func (x *ConstructResponse_PropertyDependencies) GetUrns() []string { if x != nil { return x.Urns } return nil } var File_pulumi_provider_proto protoreflect.FileDescriptor var file_pulumi_provider_proto_rawDesc = []byte{ 0x0a, 0x15, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x1a, 0x13, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x2f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x95, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xad, 0x02, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x41, 0x72, 0x67, 0x73, 0x48, 0x00, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x24, 0x0a, 0x0e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x41, 0x72, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x1a, 0x55, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x44, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x75, 0x62, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x75, 0x62, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x75, 0x62, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x75, 0x62, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2b, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0xfd, 0x02, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x4f, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x5f, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x65, 0x6e, 0x64, 0x73, 0x4f, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x54, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xff, 0x01, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x21, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb2, 0x01, 0x0a, 0x19, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x51, 0x0a, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x52, 0x0b, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x73, 0x1a, 0x42, 0x0a, 0x0a, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8b, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x6f, 0x6b, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x07, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x22, 0x76, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x22, 0xae, 0x06, 0x0a, 0x0b, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x6f, 0x6b, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x55, 0x0a, 0x0f, 0x61, 0x72, 0x67, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x67, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x61, 0x72, 0x67, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x2a, 0x0a, 0x14, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x1a, 0x6f, 0x0a, 0x14, 0x41, 0x72, 0x67, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a, 0x04, 0x08, 0x10, 0x10, 0x11, 0x4a, 0x04, 0x08, 0x0f, 0x10, 0x10, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x52, 0x4c, 0x52, 0x0f, 0x70, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x73, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x0c, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x28, 0x0a, 0x12, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x1a, 0x71, 0x0a, 0x17, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xd1, 0x03, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x53, 0x65, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0xab, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x6e, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x45, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x75, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x8f, 0x02, 0x0a, 0x0b, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc0, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x69, 0x66, 0x66, 0x12, 0x30, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x69, 0x66, 0x66, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x69, 0x66, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x69, 0x66, 0x66, 0x22, 0x60, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x44, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x10, 0x05, 0x22, 0xdd, 0x03, 0x0a, 0x0c, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x69, 0x66, 0x66, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x64, 0x69, 0x66, 0x66, 0x73, 0x12, 0x4d, 0x0a, 0x0c, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x1a, 0x58, 0x0a, 0x11, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x44, 0x69, 0x66, 0x66, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x69, 0x66, 0x66, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3d, 0x0a, 0x0b, 0x44, 0x69, 0x66, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x49, 0x46, 0x46, 0x5f, 0x53, 0x4f, 0x4d, 0x45, 0x10, 0x02, 0x22, 0xb6, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x59, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xc1, 0x01, 0x0a, 0x0b, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0xc5, 0x02, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x2b, 0x0a, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6f, 0x6c, 0x64, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x6e, 0x65, 0x77, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x0a, 0x6f, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xad, 0x0b, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x72, 0x61, 0x6c, 0x6c, 0x65, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x60, 0x0a, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x0e, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x57, 0x69, 0x74, 0x68, 0x12, 0x30, 0x0a, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x4f, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x2a, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x1a, 0x58, 0x0a, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x76, 0x0a, 0x16, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x46, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3c, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xdc, 0x02, 0x0a, 0x11, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x2d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x61, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x11, 0x73, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x1a, 0x2a, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x75, 0x72, 0x6e, 0x73, 0x1a, 0x77, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xad, 0x01, 0x0a, 0x17, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x37, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x22, 0x41, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x22, 0x44, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x33, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x32, 0xb3, 0x0b, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x09, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x12, 0x23, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x51, 0x0a, 0x0c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x69, 0x7a, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x1b, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x0a, 0x44, 0x69, 0x66, 0x66, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x12, 0x1b, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x39, 0x0a, 0x04, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x16, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x04, 0x44, 0x69, 0x66, 0x66, 0x12, 0x16, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x04, 0x52, 0x65, 0x61, 0x64, 0x12, 0x16, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3f, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x48, 0x0a, 0x09, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x06, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x15, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x06, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x12, 0x17, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x6c, 0x75, 0x67, 0x69, 0x6e, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x4b, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x1c, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x34, 0x5a, 0x32, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x2f, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x2f, 0x73, 0x64, 0x6b, 0x2f, 0x76, 0x33, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x3b, 0x70, 0x75, 0x6c, 0x75, 0x6d, 0x69, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_pulumi_provider_proto_rawDescOnce sync.Once file_pulumi_provider_proto_rawDescData = file_pulumi_provider_proto_rawDesc ) func file_pulumi_provider_proto_rawDescGZIP() []byte { file_pulumi_provider_proto_rawDescOnce.Do(func() { file_pulumi_provider_proto_rawDescData = protoimpl.X.CompressGZIP(file_pulumi_provider_proto_rawDescData) }) return file_pulumi_provider_proto_rawDescData } var file_pulumi_provider_proto_enumTypes = make([]protoimpl.EnumInfo, 3) var file_pulumi_provider_proto_msgTypes = make([]protoimpl.MessageInfo, 51) var file_pulumi_provider_proto_goTypes = []interface{}{ (CheckRequest_AutonamingOptions_Mode)(0), // 0: pulumirpc.CheckRequest.AutonamingOptions.Mode (PropertyDiff_Kind)(0), // 1: pulumirpc.PropertyDiff.Kind (DiffResponse_DiffChanges)(0), // 2: pulumirpc.DiffResponse.DiffChanges (*ProviderHandshakeRequest)(nil), // 3: pulumirpc.ProviderHandshakeRequest (*ProviderHandshakeResponse)(nil), // 4: pulumirpc.ProviderHandshakeResponse (*ParameterizeRequest)(nil), // 5: pulumirpc.ParameterizeRequest (*ParameterizeResponse)(nil), // 6: pulumirpc.ParameterizeResponse (*GetSchemaRequest)(nil), // 7: pulumirpc.GetSchemaRequest (*GetSchemaResponse)(nil), // 8: pulumirpc.GetSchemaResponse (*ConfigureRequest)(nil), // 9: pulumirpc.ConfigureRequest (*ConfigureResponse)(nil), // 10: pulumirpc.ConfigureResponse (*ConfigureErrorMissingKeys)(nil), // 11: pulumirpc.ConfigureErrorMissingKeys (*InvokeRequest)(nil), // 12: pulumirpc.InvokeRequest (*InvokeResponse)(nil), // 13: pulumirpc.InvokeResponse (*CallRequest)(nil), // 14: pulumirpc.CallRequest (*CallResponse)(nil), // 15: pulumirpc.CallResponse (*CheckRequest)(nil), // 16: pulumirpc.CheckRequest (*CheckResponse)(nil), // 17: pulumirpc.CheckResponse (*CheckFailure)(nil), // 18: pulumirpc.CheckFailure (*DiffRequest)(nil), // 19: pulumirpc.DiffRequest (*PropertyDiff)(nil), // 20: pulumirpc.PropertyDiff (*DiffResponse)(nil), // 21: pulumirpc.DiffResponse (*CreateRequest)(nil), // 22: pulumirpc.CreateRequest (*CreateResponse)(nil), // 23: pulumirpc.CreateResponse (*ReadRequest)(nil), // 24: pulumirpc.ReadRequest (*ReadResponse)(nil), // 25: pulumirpc.ReadResponse (*UpdateRequest)(nil), // 26: pulumirpc.UpdateRequest (*UpdateResponse)(nil), // 27: pulumirpc.UpdateResponse (*DeleteRequest)(nil), // 28: pulumirpc.DeleteRequest (*ConstructRequest)(nil), // 29: pulumirpc.ConstructRequest (*ConstructResponse)(nil), // 30: pulumirpc.ConstructResponse (*ErrorResourceInitFailed)(nil), // 31: pulumirpc.ErrorResourceInitFailed (*GetMappingRequest)(nil), // 32: pulumirpc.GetMappingRequest (*GetMappingResponse)(nil), // 33: pulumirpc.GetMappingResponse (*GetMappingsRequest)(nil), // 34: pulumirpc.GetMappingsRequest (*GetMappingsResponse)(nil), // 35: pulumirpc.GetMappingsResponse (*ParameterizeRequest_ParametersArgs)(nil), // 36: pulumirpc.ParameterizeRequest.ParametersArgs (*ParameterizeRequest_ParametersValue)(nil), // 37: pulumirpc.ParameterizeRequest.ParametersValue nil, // 38: pulumirpc.ConfigureRequest.VariablesEntry (*ConfigureErrorMissingKeys_MissingKey)(nil), // 39: pulumirpc.ConfigureErrorMissingKeys.MissingKey (*CallRequest_ArgumentDependencies)(nil), // 40: pulumirpc.CallRequest.ArgumentDependencies nil, // 41: pulumirpc.CallRequest.ArgDependenciesEntry nil, // 42: pulumirpc.CallRequest.ConfigEntry (*CallResponse_ReturnDependencies)(nil), // 43: pulumirpc.CallResponse.ReturnDependencies nil, // 44: pulumirpc.CallResponse.ReturnDependenciesEntry (*CheckRequest_AutonamingOptions)(nil), // 45: pulumirpc.CheckRequest.AutonamingOptions nil, // 46: pulumirpc.DiffResponse.DetailedDiffEntry (*ConstructRequest_PropertyDependencies)(nil), // 47: pulumirpc.ConstructRequest.PropertyDependencies (*ConstructRequest_CustomTimeouts)(nil), // 48: pulumirpc.ConstructRequest.CustomTimeouts nil, // 49: pulumirpc.ConstructRequest.ConfigEntry nil, // 50: pulumirpc.ConstructRequest.InputDependenciesEntry nil, // 51: pulumirpc.ConstructRequest.ProvidersEntry (*ConstructResponse_PropertyDependencies)(nil), // 52: pulumirpc.ConstructResponse.PropertyDependencies nil, // 53: pulumirpc.ConstructResponse.StateDependenciesEntry (*structpb.Struct)(nil), // 54: google.protobuf.Struct (*emptypb.Empty)(nil), // 55: google.protobuf.Empty (*PluginAttach)(nil), // 56: pulumirpc.PluginAttach (*PluginInfo)(nil), // 57: pulumirpc.PluginInfo } var file_pulumi_provider_proto_depIdxs = []int32{ 36, // 0: pulumirpc.ParameterizeRequest.args:type_name -> pulumirpc.ParameterizeRequest.ParametersArgs 37, // 1: pulumirpc.ParameterizeRequest.value:type_name -> pulumirpc.ParameterizeRequest.ParametersValue 38, // 2: pulumirpc.ConfigureRequest.variables:type_name -> pulumirpc.ConfigureRequest.VariablesEntry 54, // 3: pulumirpc.ConfigureRequest.args:type_name -> google.protobuf.Struct 39, // 4: pulumirpc.ConfigureErrorMissingKeys.missingKeys:type_name -> pulumirpc.ConfigureErrorMissingKeys.MissingKey 54, // 5: pulumirpc.InvokeRequest.args:type_name -> google.protobuf.Struct 54, // 6: pulumirpc.InvokeResponse.return:type_name -> google.protobuf.Struct 18, // 7: pulumirpc.InvokeResponse.failures:type_name -> pulumirpc.CheckFailure 54, // 8: pulumirpc.CallRequest.args:type_name -> google.protobuf.Struct 41, // 9: pulumirpc.CallRequest.argDependencies:type_name -> pulumirpc.CallRequest.ArgDependenciesEntry 42, // 10: pulumirpc.CallRequest.config:type_name -> pulumirpc.CallRequest.ConfigEntry 54, // 11: pulumirpc.CallResponse.return:type_name -> google.protobuf.Struct 18, // 12: pulumirpc.CallResponse.failures:type_name -> pulumirpc.CheckFailure 44, // 13: pulumirpc.CallResponse.returnDependencies:type_name -> pulumirpc.CallResponse.ReturnDependenciesEntry 54, // 14: pulumirpc.CheckRequest.olds:type_name -> google.protobuf.Struct 54, // 15: pulumirpc.CheckRequest.news:type_name -> google.protobuf.Struct 45, // 16: pulumirpc.CheckRequest.autonaming:type_name -> pulumirpc.CheckRequest.AutonamingOptions 54, // 17: pulumirpc.CheckResponse.inputs:type_name -> google.protobuf.Struct 18, // 18: pulumirpc.CheckResponse.failures:type_name -> pulumirpc.CheckFailure 54, // 19: pulumirpc.DiffRequest.olds:type_name -> google.protobuf.Struct 54, // 20: pulumirpc.DiffRequest.news:type_name -> google.protobuf.Struct 54, // 21: pulumirpc.DiffRequest.old_inputs:type_name -> google.protobuf.Struct 1, // 22: pulumirpc.PropertyDiff.kind:type_name -> pulumirpc.PropertyDiff.Kind 2, // 23: pulumirpc.DiffResponse.changes:type_name -> pulumirpc.DiffResponse.DiffChanges 46, // 24: pulumirpc.DiffResponse.detailedDiff:type_name -> pulumirpc.DiffResponse.DetailedDiffEntry 54, // 25: pulumirpc.CreateRequest.properties:type_name -> google.protobuf.Struct 54, // 26: pulumirpc.CreateResponse.properties:type_name -> google.protobuf.Struct 54, // 27: pulumirpc.ReadRequest.properties:type_name -> google.protobuf.Struct 54, // 28: pulumirpc.ReadRequest.inputs:type_name -> google.protobuf.Struct 54, // 29: pulumirpc.ReadResponse.properties:type_name -> google.protobuf.Struct 54, // 30: pulumirpc.ReadResponse.inputs:type_name -> google.protobuf.Struct 54, // 31: pulumirpc.UpdateRequest.olds:type_name -> google.protobuf.Struct 54, // 32: pulumirpc.UpdateRequest.news:type_name -> google.protobuf.Struct 54, // 33: pulumirpc.UpdateRequest.old_inputs:type_name -> google.protobuf.Struct 54, // 34: pulumirpc.UpdateResponse.properties:type_name -> google.protobuf.Struct 54, // 35: pulumirpc.DeleteRequest.properties:type_name -> google.protobuf.Struct 54, // 36: pulumirpc.DeleteRequest.old_inputs:type_name -> google.protobuf.Struct 49, // 37: pulumirpc.ConstructRequest.config:type_name -> pulumirpc.ConstructRequest.ConfigEntry 54, // 38: pulumirpc.ConstructRequest.inputs:type_name -> google.protobuf.Struct 50, // 39: pulumirpc.ConstructRequest.inputDependencies:type_name -> pulumirpc.ConstructRequest.InputDependenciesEntry 51, // 40: pulumirpc.ConstructRequest.providers:type_name -> pulumirpc.ConstructRequest.ProvidersEntry 48, // 41: pulumirpc.ConstructRequest.customTimeouts:type_name -> pulumirpc.ConstructRequest.CustomTimeouts 54, // 42: pulumirpc.ConstructResponse.state:type_name -> google.protobuf.Struct 53, // 43: pulumirpc.ConstructResponse.stateDependencies:type_name -> pulumirpc.ConstructResponse.StateDependenciesEntry 54, // 44: pulumirpc.ErrorResourceInitFailed.properties:type_name -> google.protobuf.Struct 54, // 45: pulumirpc.ErrorResourceInitFailed.inputs:type_name -> google.protobuf.Struct 40, // 46: pulumirpc.CallRequest.ArgDependenciesEntry.value:type_name -> pulumirpc.CallRequest.ArgumentDependencies 43, // 47: pulumirpc.CallResponse.ReturnDependenciesEntry.value:type_name -> pulumirpc.CallResponse.ReturnDependencies 0, // 48: pulumirpc.CheckRequest.AutonamingOptions.mode:type_name -> pulumirpc.CheckRequest.AutonamingOptions.Mode 20, // 49: pulumirpc.DiffResponse.DetailedDiffEntry.value:type_name -> pulumirpc.PropertyDiff 47, // 50: pulumirpc.ConstructRequest.InputDependenciesEntry.value:type_name -> pulumirpc.ConstructRequest.PropertyDependencies 52, // 51: pulumirpc.ConstructResponse.StateDependenciesEntry.value:type_name -> pulumirpc.ConstructResponse.PropertyDependencies 3, // 52: pulumirpc.ResourceProvider.Handshake:input_type -> pulumirpc.ProviderHandshakeRequest 5, // 53: pulumirpc.ResourceProvider.Parameterize:input_type -> pulumirpc.ParameterizeRequest 7, // 54: pulumirpc.ResourceProvider.GetSchema:input_type -> pulumirpc.GetSchemaRequest 16, // 55: pulumirpc.ResourceProvider.CheckConfig:input_type -> pulumirpc.CheckRequest 19, // 56: pulumirpc.ResourceProvider.DiffConfig:input_type -> pulumirpc.DiffRequest 9, // 57: pulumirpc.ResourceProvider.Configure:input_type -> pulumirpc.ConfigureRequest 12, // 58: pulumirpc.ResourceProvider.Invoke:input_type -> pulumirpc.InvokeRequest 12, // 59: pulumirpc.ResourceProvider.StreamInvoke:input_type -> pulumirpc.InvokeRequest 14, // 60: pulumirpc.ResourceProvider.Call:input_type -> pulumirpc.CallRequest 16, // 61: pulumirpc.ResourceProvider.Check:input_type -> pulumirpc.CheckRequest 19, // 62: pulumirpc.ResourceProvider.Diff:input_type -> pulumirpc.DiffRequest 22, // 63: pulumirpc.ResourceProvider.Create:input_type -> pulumirpc.CreateRequest 24, // 64: pulumirpc.ResourceProvider.Read:input_type -> pulumirpc.ReadRequest 26, // 65: pulumirpc.ResourceProvider.Update:input_type -> pulumirpc.UpdateRequest 28, // 66: pulumirpc.ResourceProvider.Delete:input_type -> pulumirpc.DeleteRequest 29, // 67: pulumirpc.ResourceProvider.Construct:input_type -> pulumirpc.ConstructRequest 55, // 68: pulumirpc.ResourceProvider.Cancel:input_type -> google.protobuf.Empty 55, // 69: pulumirpc.ResourceProvider.GetPluginInfo:input_type -> google.protobuf.Empty 56, // 70: pulumirpc.ResourceProvider.Attach:input_type -> pulumirpc.PluginAttach 32, // 71: pulumirpc.ResourceProvider.GetMapping:input_type -> pulumirpc.GetMappingRequest 34, // 72: pulumirpc.ResourceProvider.GetMappings:input_type -> pulumirpc.GetMappingsRequest 4, // 73: pulumirpc.ResourceProvider.Handshake:output_type -> pulumirpc.ProviderHandshakeResponse 6, // 74: pulumirpc.ResourceProvider.Parameterize:output_type -> pulumirpc.ParameterizeResponse 8, // 75: pulumirpc.ResourceProvider.GetSchema:output_type -> pulumirpc.GetSchemaResponse 17, // 76: pulumirpc.ResourceProvider.CheckConfig:output_type -> pulumirpc.CheckResponse 21, // 77: pulumirpc.ResourceProvider.DiffConfig:output_type -> pulumirpc.DiffResponse 10, // 78: pulumirpc.ResourceProvider.Configure:output_type -> pulumirpc.ConfigureResponse 13, // 79: pulumirpc.ResourceProvider.Invoke:output_type -> pulumirpc.InvokeResponse 13, // 80: pulumirpc.ResourceProvider.StreamInvoke:output_type -> pulumirpc.InvokeResponse 15, // 81: pulumirpc.ResourceProvider.Call:output_type -> pulumirpc.CallResponse 17, // 82: pulumirpc.ResourceProvider.Check:output_type -> pulumirpc.CheckResponse 21, // 83: pulumirpc.ResourceProvider.Diff:output_type -> pulumirpc.DiffResponse 23, // 84: pulumirpc.ResourceProvider.Create:output_type -> pulumirpc.CreateResponse 25, // 85: pulumirpc.ResourceProvider.Read:output_type -> pulumirpc.ReadResponse 27, // 86: pulumirpc.ResourceProvider.Update:output_type -> pulumirpc.UpdateResponse 55, // 87: pulumirpc.ResourceProvider.Delete:output_type -> google.protobuf.Empty 30, // 88: pulumirpc.ResourceProvider.Construct:output_type -> pulumirpc.ConstructResponse 55, // 89: pulumirpc.ResourceProvider.Cancel:output_type -> google.protobuf.Empty 57, // 90: pulumirpc.ResourceProvider.GetPluginInfo:output_type -> pulumirpc.PluginInfo 55, // 91: pulumirpc.ResourceProvider.Attach:output_type -> google.protobuf.Empty 33, // 92: pulumirpc.ResourceProvider.GetMapping:output_type -> pulumirpc.GetMappingResponse 35, // 93: pulumirpc.ResourceProvider.GetMappings:output_type -> pulumirpc.GetMappingsResponse 73, // [73:94] is the sub-list for method output_type 52, // [52:73] is the sub-list for method input_type 52, // [52:52] is the sub-list for extension type_name 52, // [52:52] is the sub-list for extension extendee 0, // [0:52] is the sub-list for field type_name } func init() { file_pulumi_provider_proto_init() } func file_pulumi_provider_proto_init() { if File_pulumi_provider_proto != nil { return } file_pulumi_plugin_proto_init() if !protoimpl.UnsafeEnabled { file_pulumi_provider_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProviderHandshakeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProviderHandshakeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParameterizeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParameterizeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSchemaRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSchemaResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureErrorMissingKeys); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvokeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*InvokeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CallRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CallResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckFailure); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PropertyDiff); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReadResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConstructRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConstructResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ErrorResourceInitFailed); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMappingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMappingResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMappingsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMappingsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParameterizeRequest_ParametersArgs); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ParameterizeRequest_ParametersValue); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConfigureErrorMissingKeys_MissingKey); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CallRequest_ArgumentDependencies); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CallResponse_ReturnDependencies); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckRequest_AutonamingOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConstructRequest_PropertyDependencies); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConstructRequest_CustomTimeouts); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_pulumi_provider_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConstructResponse_PropertyDependencies); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_pulumi_provider_proto_msgTypes[2].OneofWrappers = []interface{}{ (*ParameterizeRequest_Args)(nil), (*ParameterizeRequest_Value)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_pulumi_provider_proto_rawDesc, NumEnums: 3, NumMessages: 51, NumExtensions: 0, NumServices: 1, }, GoTypes: file_pulumi_provider_proto_goTypes, DependencyIndexes: file_pulumi_provider_proto_depIdxs, EnumInfos: file_pulumi_provider_proto_enumTypes, MessageInfos: file_pulumi_provider_proto_msgTypes, }.Build() File_pulumi_provider_proto = out.File file_pulumi_provider_proto_rawDesc = nil file_pulumi_provider_proto_goTypes = nil file_pulumi_provider_proto_depIdxs = nil }