cli/bpmetadata/bpmetadata.pb.go (2,760 lines of code) (raw):

// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.23.4 // source: bpmetadata.proto package bpmetadata import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" 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) ) // QuotaResourceType defines the type of resource a quota is applied to. type QuotaResourceType int32 const ( QuotaResourceType_QRT_UNDEFINED QuotaResourceType = 0 QuotaResourceType_QRT_RESOURCE_TYPE_GCE_INSTANCE QuotaResourceType = 1 QuotaResourceType_QRT_RESOURCE_TYPE_GCE_DISK QuotaResourceType = 2 ) // Enum value maps for QuotaResourceType. var ( QuotaResourceType_name = map[int32]string{ 0: "QRT_UNDEFINED", 1: "QRT_RESOURCE_TYPE_GCE_INSTANCE", 2: "QRT_RESOURCE_TYPE_GCE_DISK", } QuotaResourceType_value = map[string]int32{ "QRT_UNDEFINED": 0, "QRT_RESOURCE_TYPE_GCE_INSTANCE": 1, "QRT_RESOURCE_TYPE_GCE_DISK": 2, } ) func (x QuotaResourceType) Enum() *QuotaResourceType { p := new(QuotaResourceType) *p = x return p } func (x QuotaResourceType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (QuotaResourceType) Descriptor() protoreflect.EnumDescriptor { return file_bpmetadata_proto_enumTypes[0].Descriptor() } func (QuotaResourceType) Type() protoreflect.EnumType { return &file_bpmetadata_proto_enumTypes[0] } func (x QuotaResourceType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use QuotaResourceType.Descriptor instead. func (QuotaResourceType) EnumDescriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{0} } // SoftwareGroupType is a string enum representing the different types of software groups. type SoftwareGroupType int32 const ( // UNSPECIFIED is the default value for SoftwareGroupType. SoftwareGroupType_SG_UNSPECIFIED SoftwareGroupType = 0 // OS is a software group that represents an operating system. SoftwareGroupType_SG_OS SoftwareGroupType = 1 ) // Enum value maps for SoftwareGroupType. var ( SoftwareGroupType_name = map[int32]string{ 0: "SG_UNSPECIFIED", 1: "SG_OS", } SoftwareGroupType_value = map[string]int32{ "SG_UNSPECIFIED": 0, "SG_OS": 1, } ) func (x SoftwareGroupType) Enum() *SoftwareGroupType { p := new(SoftwareGroupType) *p = x return p } func (x SoftwareGroupType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (SoftwareGroupType) Descriptor() protoreflect.EnumDescriptor { return file_bpmetadata_proto_enumTypes[1].Descriptor() } func (SoftwareGroupType) Type() protoreflect.EnumType { return &file_bpmetadata_proto_enumTypes[1] } func (x SoftwareGroupType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use SoftwareGroupType.Descriptor instead. func (SoftwareGroupType) EnumDescriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{1} } // BlueprintMetadata defines the overall structure for blueprint metadata. // The cli command i.e. `cft blueprint metadata` attempts at auto-generating // metadata if the blueprint is structured based on the TF blueprint template // i.e. https://github.com/terraform-google-modules/terraform-google-module-template // All fields within BlueprintMetadata and its children are denoted as: // - Gen: auto-generated - <data source> // - Gen: manually-authored // - Gen: partial (contains nested messages that can include both auto-generated and manually authored) type BlueprintMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // APIVersion is the apiVersion field of a metadata file // Gen: auto-generated ApiVersion string `protobuf:"bytes,1,opt,name=api_version,json=apiVersion,proto3" json:"apiVersion,omitempty" yaml:"apiVersion,omitempty"` // @gotags: json:"apiVersion,omitempty" yaml:"apiVersion,omitempty" // Kind is the kind field of a metadata file // Gen: auto-generated Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty" yaml:"kind,omitempty"` // @gotags: json:"kind,omitempty" yaml:"kind,omitempty" // ResourceTypeMeta is the metadata field of a metadata file // Gen: partial Metadata *ResourceTypeMeta `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty" yaml:"metadata,omitempty"` // @gotags: json:"metadata,omitempty" yaml:"metadata,omitempty" // BlueprintMetadataSpec is the metadata specification for the blueprint // Gen: partial Spec *BlueprintMetadataSpec `protobuf:"bytes,4,opt,name=spec,proto3" json:"spec" yaml:"spec"` // @gotags: yaml:"spec" json:"spec" } func (x *BlueprintMetadata) Reset() { *x = BlueprintMetadata{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintMetadata) ProtoMessage() {} func (x *BlueprintMetadata) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintMetadata.ProtoReflect.Descriptor instead. func (*BlueprintMetadata) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{0} } func (x *BlueprintMetadata) GetApiVersion() string { if x != nil { return x.ApiVersion } return "" } func (x *BlueprintMetadata) GetKind() string { if x != nil { return x.Kind } return "" } func (x *BlueprintMetadata) GetMetadata() *ResourceTypeMeta { if x != nil { return x.Metadata } return nil } func (x *BlueprintMetadata) GetSpec() *BlueprintMetadataSpec { if x != nil { return x.Spec } return nil } type ResourceTypeMeta struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name is the metadata.name field of a Resource // Gen: auto-generated Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" yaml:"name,omitempty"` // @gotags: json:"name,omitempty" yaml:"name,omitempty" // Labels is the metadata.labels field of a Resource // Gen: manually-authored Labels map[string]string `protobuf:"bytes,2,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" yaml:"labels,omitempty"` // @gotags: json:"labels,omitempty" yaml:"labels,omitempty" // Annotations is the metadata.annotations field of a Resource. // Gen: auto-generated Annotations map[string]string `protobuf:"bytes,3,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" yaml:"annotations,omitempty"` // @gotags: json:"annotations,omitempty" yaml:"annotations,omitempty" } func (x *ResourceTypeMeta) Reset() { *x = ResourceTypeMeta{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ResourceTypeMeta) String() string { return protoimpl.X.MessageStringOf(x) } func (*ResourceTypeMeta) ProtoMessage() {} func (x *ResourceTypeMeta) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 ResourceTypeMeta.ProtoReflect.Descriptor instead. func (*ResourceTypeMeta) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{1} } func (x *ResourceTypeMeta) GetName() string { if x != nil { return x.Name } return "" } func (x *ResourceTypeMeta) GetLabels() map[string]string { if x != nil { return x.Labels } return nil } func (x *ResourceTypeMeta) GetAnnotations() map[string]string { if x != nil { return x.Annotations } return nil } // BlueprintMetadataSpec defines the spec portion of the blueprint metadata. type BlueprintMetadataSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // BlueprintInfo defines the basic information of the blueprint. // Gen: partial Info *BlueprintInfo `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty" yaml:"info,omitempty"` // @gotags: json:"info,omitempty" yaml:"info,omitempty" // BlueprintContent defines the detail for blueprint related content such as // related documentation, diagrams, examples etc. // Gen: partial Content *BlueprintContent `protobuf:"bytes,2,opt,name=content,proto3" json:"content,omitempty" yaml:"content,omitempty"` // @gotags: json:"content,omitempty" yaml:"content,omitempty" // BlueprintInterface defines the input and output variables for the blueprint. // Gen: partial Interfaces *BlueprintInterface `protobuf:"bytes,3,opt,name=interfaces,proto3" json:"interfaces,omitempty" yaml:"interfaces,omitempty"` // @gotags: json:"interfaces,omitempty" yaml:"interfaces,omitempty" // BlueprintRequirements defines the roles required and the associated services // that need to be enabled to provision blueprint resources. // Gen: auto-generated Requirements *BlueprintRequirements `protobuf:"bytes,4,opt,name=requirements,proto3" json:"requirements,omitempty" yaml:"requirements,omitempty"` // @gotags: json:"requirements,omitempty" yaml:"requirements,omitempty" // BlueprintUI defines the user interface for the blueprint. // Gen: partial Ui *BlueprintUI `protobuf:"bytes,5,opt,name=ui,proto3" json:"ui,omitempty" yaml:"ui,omitempty"` // @gotags: json:"ui,omitempty" yaml:"ui,omitempty" } func (x *BlueprintMetadataSpec) Reset() { *x = BlueprintMetadataSpec{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintMetadataSpec) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintMetadataSpec) ProtoMessage() {} func (x *BlueprintMetadataSpec) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintMetadataSpec.ProtoReflect.Descriptor instead. func (*BlueprintMetadataSpec) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{2} } func (x *BlueprintMetadataSpec) GetInfo() *BlueprintInfo { if x != nil { return x.Info } return nil } func (x *BlueprintMetadataSpec) GetContent() *BlueprintContent { if x != nil { return x.Content } return nil } func (x *BlueprintMetadataSpec) GetInterfaces() *BlueprintInterface { if x != nil { return x.Interfaces } return nil } func (x *BlueprintMetadataSpec) GetRequirements() *BlueprintRequirements { if x != nil { return x.Requirements } return nil } func (x *BlueprintMetadataSpec) GetUi() *BlueprintUI { if x != nil { return x.Ui } return nil } // BlueprintInfo defines the basic information of the blueprint. type BlueprintInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Title for the blueprint. // Gen: auto-generated - First H1 text in readme.md. Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" yaml:"title"` // @gotags: json:"title" yaml:"title" // Blueprint source location and source type. // Gen: auto-generated - user will be prompted if repo information can not // be determined from the blueprint path. Source *BlueprintRepoDetail `protobuf:"bytes,2,opt,name=source,proto3" json:"source,omitempty" yaml:"source,omitempty"` // @gotags: json:"source,omitempty" yaml:"source,omitempty" // Last released semantic version for the packaged blueprint. // Gen: auto-generated - From the `module_name` attribute of // the `provider_meta "google"` block. // E.g. // // provider_meta "google" { // module_name = "blueprints/terraform/terraform-google-log-analysis/v0.1.5" // } Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty" yaml:"version,omitempty"` // @gotags: json:"version,omitempty" yaml:"version,omitempty" // Actuation tool e.g. Terraform and its required version. // Gen: auto-generated ActuationTool *BlueprintActuationTool `protobuf:"bytes,4,opt,name=actuation_tool,json=actuationTool,proto3" json:"actuationTool,omitempty" yaml:"actuationTool,omitempty"` // @gotags: json:"actuationTool,omitempty" yaml:"actuationTool,omitempty" // Various types of descriptions associated with the blueprint. // Gen: auto-generated Description *BlueprintDescription `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" // Path to an image representing the icon for the blueprint. // Will be set as "assets/icon.png", if present. // Gen: auto-generated Icon string `protobuf:"bytes,6,opt,name=icon,proto3" json:"icon,omitempty" yaml:"icon,omitempty"` // @gotags: json:"icon,omitempty" yaml:"icon,omitempty" // The time estimate for configuring and deploying the blueprint. // Gen: auto-generated DeploymentDuration *BlueprintTimeEstimate `protobuf:"bytes,7,opt,name=deployment_duration,json=deploymentDuration,proto3" json:"deploymentDuration,omitempty" yaml:"deploymentDuration,omitempty"` // @gotags: json:"deploymentDuration,omitempty" yaml:"deploymentDuration,omitempty" // The cost estimate for the blueprint based on preconfigured variables. // Gen: auto-generated CostEstimate *BlueprintCostEstimate `protobuf:"bytes,8,opt,name=cost_estimate,json=costEstimate,proto3" json:"costEstimate,omitempty" yaml:"costEstimate,omitempty"` // @gotags: json:"costEstimate,omitempty" yaml:"costEstimate,omitempty" // A list of GCP cloud products used in the blueprint. // Gen: manually-authored CloudProducts []*BlueprintCloudProduct `protobuf:"bytes,9,rep,name=cloud_products,json=cloudProducts,proto3" json:"cloudProducts,omitempty" yaml:"cloudProducts,omitempty"` // @gotags: json:"cloudProducts,omitempty" yaml:"cloudProducts,omitempty" // A configuration of fixed and dynamic GCP quotas that apply to the blueprint. // Gen: manually-authored QuotaDetails []*BlueprintQuotaDetail `protobuf:"bytes,10,rep,name=quota_details,json=quotaDetails,proto3" json:"quotaDetails,omitempty" yaml:"quotaDetails,omitempty"` // @gotags: json:"quotaDetails,omitempty" yaml:"quotaDetails,omitempty" // Details on the author producing the blueprint. // Gen: manually-authored Author *BlueprintAuthor `protobuf:"bytes,11,opt,name=author,proto3" json:"author,omitempty" yaml:"author,omitempty"` // @gotags: json:"author,omitempty" yaml:"author,omitempty" // Details on software installed as part of the blueprint. // Gen: manually-authored SoftwareGroups []*BlueprintSoftwareGroup `protobuf:"bytes,12,rep,name=software_groups,json=softwareGroups,proto3" json:"softwareGroups,omitempty" yaml:"softwareGroups,omitempty"` // @gotags: json:"softwareGroups,omitempty" yaml:"softwareGroups,omitempty" // Support offered, if any for the blueprint. // Gen: manually-authored SupportInfo *BlueprintSupport `protobuf:"bytes,13,opt,name=support_info,json=supportInfo,proto3" json:"supportInfo,omitempty" yaml:"supportInfo,omitempty"` // @gotags: json:"supportInfo,omitempty" yaml:"supportInfo,omitempty" // A list of GCP org policies to be checked for successful deployment. // Gen: manually-authored OrgPolicyChecks []*BlueprintOrgPolicyCheck `protobuf:"bytes,14,rep,name=org_policy_checks,json=orgPolicyChecks,proto3" json:"orgPolicyChecks,omitempty" yaml:"orgPolicyChecks,omitempty"` // @gotags: json:"orgPolicyChecks,omitempty" yaml:"orgPolicyChecks,omitempty" // Specifies if the blueprint supports single or multiple deployments per GCP project. // If set to true, the blueprint can not be deployed more than once in the same GCP project. // Gen: manually-authored SingleDeployment bool `protobuf:"varint,15,opt,name=single_deployment,json=singleDeployment,proto3" json:"singleDeployment,omitempty" yaml:"singleDeployment,omitempty"` // @gotags: json:"singleDeployment,omitempty" yaml:"singleDeployment,omitempty" } func (x *BlueprintInfo) Reset() { *x = BlueprintInfo{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintInfo) ProtoMessage() {} func (x *BlueprintInfo) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintInfo.ProtoReflect.Descriptor instead. func (*BlueprintInfo) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{3} } func (x *BlueprintInfo) GetTitle() string { if x != nil { return x.Title } return "" } func (x *BlueprintInfo) GetSource() *BlueprintRepoDetail { if x != nil { return x.Source } return nil } func (x *BlueprintInfo) GetVersion() string { if x != nil { return x.Version } return "" } func (x *BlueprintInfo) GetActuationTool() *BlueprintActuationTool { if x != nil { return x.ActuationTool } return nil } func (x *BlueprintInfo) GetDescription() *BlueprintDescription { if x != nil { return x.Description } return nil } func (x *BlueprintInfo) GetIcon() string { if x != nil { return x.Icon } return "" } func (x *BlueprintInfo) GetDeploymentDuration() *BlueprintTimeEstimate { if x != nil { return x.DeploymentDuration } return nil } func (x *BlueprintInfo) GetCostEstimate() *BlueprintCostEstimate { if x != nil { return x.CostEstimate } return nil } func (x *BlueprintInfo) GetCloudProducts() []*BlueprintCloudProduct { if x != nil { return x.CloudProducts } return nil } func (x *BlueprintInfo) GetQuotaDetails() []*BlueprintQuotaDetail { if x != nil { return x.QuotaDetails } return nil } func (x *BlueprintInfo) GetAuthor() *BlueprintAuthor { if x != nil { return x.Author } return nil } func (x *BlueprintInfo) GetSoftwareGroups() []*BlueprintSoftwareGroup { if x != nil { return x.SoftwareGroups } return nil } func (x *BlueprintInfo) GetSupportInfo() *BlueprintSupport { if x != nil { return x.SupportInfo } return nil } func (x *BlueprintInfo) GetOrgPolicyChecks() []*BlueprintOrgPolicyCheck { if x != nil { return x.OrgPolicyChecks } return nil } func (x *BlueprintInfo) GetSingleDeployment() bool { if x != nil { return x.SingleDeployment } return false } // BlueprintContent defines the detail for blueprint related content such as // related documentation, diagrams, examples etc. type BlueprintContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated Architecture *BlueprintArchitecture `protobuf:"bytes,1,opt,name=architecture,proto3" json:"architecture,omitempty" yaml:"architecture,omitempty"` // @gotags: json:"architecture,omitempty" yaml:"architecture,omitempty" // Gen: manually-authored Diagrams []*BlueprintDiagram `protobuf:"bytes,2,rep,name=diagrams,proto3" json:"diagrams,omitempty" yaml:"diagrams,omitempty"` // @gotags: json:"diagrams,omitempty" yaml:"diagrams,omitempty" // Gen: auto-generated - the list content following the "## Documentation" tag. E.g. // ## Documentation // - [Hosting a Static Website](https://cloud.google.com/storage/docs/hosting-static-website) Documentation []*BlueprintListContent `protobuf:"bytes,3,rep,name=documentation,proto3" json:"documentation,omitempty" yaml:"documentation,omitempty"` // @gotags: json:"documentation,omitempty" yaml:"documentation,omitempty" // Gen: auto-generated - blueprints under the modules/ folder. SubBlueprints []*BlueprintMiscContent `protobuf:"bytes,4,rep,name=sub_blueprints,json=subBlueprints,proto3" json:"subBlueprints,omitempty" yaml:"subBlueprints,omitempty"` // @gotags: json:"subBlueprints,omitempty" yaml:"subBlueprints,omitempty" // Gen: auto-generated - examples under the examples/ folder. Examples []*BlueprintMiscContent `protobuf:"bytes,5,rep,name=examples,proto3" json:"examples,omitempty" yaml:"examples,omitempty"` // @gotags: json:"examples,omitempty" yaml:"examples,omitempty" } func (x *BlueprintContent) Reset() { *x = BlueprintContent{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintContent) ProtoMessage() {} func (x *BlueprintContent) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintContent.ProtoReflect.Descriptor instead. func (*BlueprintContent) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{4} } func (x *BlueprintContent) GetArchitecture() *BlueprintArchitecture { if x != nil { return x.Architecture } return nil } func (x *BlueprintContent) GetDiagrams() []*BlueprintDiagram { if x != nil { return x.Diagrams } return nil } func (x *BlueprintContent) GetDocumentation() []*BlueprintListContent { if x != nil { return x.Documentation } return nil } func (x *BlueprintContent) GetSubBlueprints() []*BlueprintMiscContent { if x != nil { return x.SubBlueprints } return nil } func (x *BlueprintContent) GetExamples() []*BlueprintMiscContent { if x != nil { return x.Examples } return nil } // BlueprintInterface defines the input and output variables for the blueprint. type BlueprintInterface struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - all defined variables for the blueprint Variables []*BlueprintVariable `protobuf:"bytes,1,rep,name=variables,proto3" json:"variables,omitempty" yaml:"variables,omitempty"` // @gotags: json:"variables,omitempty" yaml:"variables,omitempty" // Gen: manually-authored VariableGroups []*BlueprintVariableGroup `protobuf:"bytes,2,rep,name=variable_groups,json=variableGroups,proto3" json:"variableGroups,omitempty" yaml:"variableGroups,omitempty"` // @gotags: json:"variableGroups,omitempty" yaml:"variableGroups,omitempty" // Gen: auto-generated - all defined outputs for the blueprint Outputs []*BlueprintOutput `protobuf:"bytes,3,rep,name=outputs,proto3" json:"outputs,omitempty" yaml:"outputs,omitempty"` // @gotags: json:"outputs,omitempty" yaml:"outputs,omitempty" } func (x *BlueprintInterface) Reset() { *x = BlueprintInterface{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintInterface) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintInterface) ProtoMessage() {} func (x *BlueprintInterface) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintInterface.ProtoReflect.Descriptor instead. func (*BlueprintInterface) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{5} } func (x *BlueprintInterface) GetVariables() []*BlueprintVariable { if x != nil { return x.Variables } return nil } func (x *BlueprintInterface) GetVariableGroups() []*BlueprintVariableGroup { if x != nil { return x.VariableGroups } return nil } func (x *BlueprintInterface) GetOutputs() []*BlueprintOutput { if x != nil { return x.Outputs } return nil } // BlueprintRequirements defines the roles required and the associated services // that need to be enabled to provision blueprint resources. type BlueprintRequirements struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - all roles required for the blueprint in test/setup/iam.tf // as the "int_required_roles" local. E.g. // // locals { // int_required_roles = [ // "roles/compute.admin", // ] // } Roles []*BlueprintRoles `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty" yaml:"roles,omitempty"` // @gotags: json:"roles,omitempty" yaml:"roles,omitempty" // Gen: auto-generated - all services required for the blueprint in test/setup/main.tf // as "activate_apis" in the project module. Services []string `protobuf:"bytes,2,rep,name=services,proto3" json:"services,omitempty" yaml:"services,omitempty"` // @gotags: json:"services,omitempty" yaml:"services,omitempty" // Required provider versions. // Gen: auto-generated from required providers block. ProviderVersions []*ProviderVersion `protobuf:"bytes,3,rep,name=provider_versions,json=providerVersions,proto3" json:"providerVersions,omitempty" yaml:"providerVersions,omitempty"` // @gotags: json:"providerVersions,omitempty" yaml:"providerVersions,omitempty" } func (x *BlueprintRequirements) Reset() { *x = BlueprintRequirements{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintRequirements) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintRequirements) ProtoMessage() {} func (x *BlueprintRequirements) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintRequirements.ProtoReflect.Descriptor instead. func (*BlueprintRequirements) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{6} } func (x *BlueprintRequirements) GetRoles() []*BlueprintRoles { if x != nil { return x.Roles } return nil } func (x *BlueprintRequirements) GetServices() []string { if x != nil { return x.Services } return nil } func (x *BlueprintRequirements) GetProviderVersions() []*ProviderVersion { if x != nil { return x.ProviderVersions } return nil } // ProviderVersion defines the required version for a provider. type ProviderVersion struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Provider source of form [hostname]/namespace/name. // Hostname is optional defaulting to Terraform registry. // Gen: auto-generated from required providers block. Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty" yaml:"source,omitempty"` // @gotags: json:"source,omitempty" yaml:"source,omitempty" // Version constraint string. // Gen: auto-generated from required providers block. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty" yaml:"version,omitempty"` // @gotags: json:"version,omitempty" yaml:"version,omitempty" } func (x *ProviderVersion) Reset() { *x = ProviderVersion{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ProviderVersion) String() string { return protoimpl.X.MessageStringOf(x) } func (*ProviderVersion) ProtoMessage() {} func (x *ProviderVersion) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 ProviderVersion.ProtoReflect.Descriptor instead. func (*ProviderVersion) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{7} } func (x *ProviderVersion) GetSource() string { if x != nil { return x.Source } return "" } func (x *ProviderVersion) GetVersion() string { if x != nil { return x.Version } return "" } // BlueprintUI is the top-level structure for holding UI specific metadata. type BlueprintUI struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The top-level input section that defines the list of variables and // their sections on the deployment page. // Gen: partial Input *BlueprintUIInput `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty" yaml:"input,omitempty"` // @gotags: json:"input,omitempty" yaml:"input,omitempty" // The top-level section for listing runtime (or blueprint output) information // i.e. the console URL for the VM or a button to ssh into the VM etc based on. // Gen: manually-authored Runtime *BlueprintUIOutput `protobuf:"bytes,2,opt,name=runtime,proto3" json:"runtime,omitempty" yaml:"runtime,omitempty"` // @gotags: json:"runtime,omitempty" yaml:"runtime,omitempty" } func (x *BlueprintUI) Reset() { *x = BlueprintUI{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintUI) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintUI) ProtoMessage() {} func (x *BlueprintUI) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintUI.ProtoReflect.Descriptor instead. func (*BlueprintUI) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{8} } func (x *BlueprintUI) GetInput() *BlueprintUIInput { if x != nil { return x.Input } return nil } func (x *BlueprintUI) GetRuntime() *BlueprintUIOutput { if x != nil { return x.Runtime } return nil } type BlueprintRepoDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - URL from the .git dir. // Can be manually overridden with a custom URL if needed. Repo string `protobuf:"bytes,1,opt,name=repo,proto3" json:"repo" yaml:"repo"` // @gotags: json:"repo" yaml:"repo" // Gen: auto-generated - set as "git" for now until more // types are supported. SourceType string `protobuf:"bytes,2,opt,name=source_type,json=sourceType,proto3" json:"sourceType" yaml:"sourceType"` // @gotags: json:"sourceType" yaml:"sourceType" // Gen: auto-generated - not set for root modules but // set as the module name for submodules, if found. Dir string `protobuf:"bytes,3,opt,name=dir,proto3" json:"dir,omitempty" yaml:"dir,omitempty"` // @gotags: json:"dir,omitempty" yaml:"dir,omitempty" } func (x *BlueprintRepoDetail) Reset() { *x = BlueprintRepoDetail{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintRepoDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintRepoDetail) ProtoMessage() {} func (x *BlueprintRepoDetail) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintRepoDetail.ProtoReflect.Descriptor instead. func (*BlueprintRepoDetail) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{9} } func (x *BlueprintRepoDetail) GetRepo() string { if x != nil { return x.Repo } return "" } func (x *BlueprintRepoDetail) GetSourceType() string { if x != nil { return x.SourceType } return "" } func (x *BlueprintRepoDetail) GetDir() string { if x != nil { return x.Dir } return "" } // BlueprintActuationTool defines the actuation tool used to provision the blueprint. type BlueprintActuationTool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - set as "Terraform" for now until // more flavors are supported. Flavor string `protobuf:"bytes,1,opt,name=flavor,proto3" json:"flavor,omitempty" yaml:"flavor,omitempty"` // @gotags: json:"flavor,omitempty" yaml:"flavor,omitempty" // Required version for the actuation tool. // Gen: auto-generated - For Terraform this is the `required_version` // set in `terraform` block. E.g. // // terraform { // required_version = ">= 0.13" // } Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty" yaml:"version,omitempty"` // @gotags: json:"version,omitempty" yaml:"version,omitempty" } func (x *BlueprintActuationTool) Reset() { *x = BlueprintActuationTool{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintActuationTool) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintActuationTool) ProtoMessage() {} func (x *BlueprintActuationTool) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintActuationTool.ProtoReflect.Descriptor instead. func (*BlueprintActuationTool) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{10} } func (x *BlueprintActuationTool) GetFlavor() string { if x != nil { return x.Flavor } return "" } func (x *BlueprintActuationTool) GetVersion() string { if x != nil { return x.Version } return "" } // All descriptions are set with the markdown content immediately // after each type's heading declaration in readme.md. type BlueprintDescription struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - Markdown after "### Tagline". Tagline string `protobuf:"bytes,1,opt,name=tagline,proto3" json:"tagline,omitempty" yaml:"tagline,omitempty"` // @gotags: json:"tagline,omitempty" yaml:"tagline,omitempty" // Gen: auto-generated - Markdown after "### Detailed". Detailed string `protobuf:"bytes,2,opt,name=detailed,proto3" json:"detailed,omitempty" yaml:"detailed,omitempty"` // @gotags: json:"detailed,omitempty" yaml:"detailed,omitempty" // Gen: auto-generated - Markdown after "### PreDeploy". PreDeploy string `protobuf:"bytes,3,opt,name=pre_deploy,json=preDeploy,proto3" json:"preDeploy,omitempty" yaml:"preDeploy,omitempty"` // @gotags: json:"preDeploy,omitempty" yaml:"preDeploy,omitempty" // Gen: auto-generated - Markdown after "### Html". Html string `protobuf:"bytes,4,opt,name=html,proto3" json:"html,omitempty" yaml:"html,omitempty"` // @gotags: json:"html,omitempty" yaml:"html,omitempty" // Gen: auto-generated - Markdown after "### EulaUrls". EulaUrls []string `protobuf:"bytes,5,rep,name=eula_urls,json=eulaUrls,proto3" json:"eulaUrls,omitempty" yaml:"eulaUrls,omitempty"` // @gotags: json:"eulaUrls,omitempty" yaml:"eulaUrls,omitempty" // Gen: auto-generated - Markdown after "### Architecture" // Deprecated. Use BlueprintContent.Architecture instead. Architecture []string `protobuf:"bytes,6,rep,name=architecture,proto3" json:"architecture,omitempty" yaml:"architecture,omitempty"` // @gotags: json:"architecture,omitempty" yaml:"architecture,omitempty" } func (x *BlueprintDescription) Reset() { *x = BlueprintDescription{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintDescription) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintDescription) ProtoMessage() {} func (x *BlueprintDescription) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintDescription.ProtoReflect.Descriptor instead. func (*BlueprintDescription) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{11} } func (x *BlueprintDescription) GetTagline() string { if x != nil { return x.Tagline } return "" } func (x *BlueprintDescription) GetDetailed() string { if x != nil { return x.Detailed } return "" } func (x *BlueprintDescription) GetPreDeploy() string { if x != nil { return x.PreDeploy } return "" } func (x *BlueprintDescription) GetHtml() string { if x != nil { return x.Html } return "" } func (x *BlueprintDescription) GetEulaUrls() []string { if x != nil { return x.EulaUrls } return nil } func (x *BlueprintDescription) GetArchitecture() []string { if x != nil { return x.Architecture } return nil } // A time estimate in secs required for configuring and deploying the blueprint. type BlueprintTimeEstimate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - Set using the content defined under "### DeploymentTime" E.g. // ### DeploymentTime // - Configuration: X secs // - Deployment: Y secs ConfigurationSecs int64 `protobuf:"varint,1,opt,name=configuration_secs,json=configurationSecs,proto3" json:"configurationSecs,omitempty" yaml:"configurationSecs,omitempty"` // @gotags: json:"configurationSecs,omitempty" yaml:"configurationSecs,omitempty" DeploymentSecs int64 `protobuf:"varint,2,opt,name=deployment_secs,json=deploymentSecs,proto3" json:"deploymentSecs,omitempty" yaml:"deploymentSecs,omitempty"` // @gotags: json:"deploymentSecs,omitempty" yaml:"deploymentSecs,omitempty" } func (x *BlueprintTimeEstimate) Reset() { *x = BlueprintTimeEstimate{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintTimeEstimate) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintTimeEstimate) ProtoMessage() {} func (x *BlueprintTimeEstimate) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintTimeEstimate.ProtoReflect.Descriptor instead. func (*BlueprintTimeEstimate) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{12} } func (x *BlueprintTimeEstimate) GetConfigurationSecs() int64 { if x != nil { return x.ConfigurationSecs } return 0 } func (x *BlueprintTimeEstimate) GetDeploymentSecs() int64 { if x != nil { return x.DeploymentSecs } return 0 } // The cost estimate for the blueprint based on pre-configured variables. type BlueprintCostEstimate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - Set using the content defined under "### Cost" as a link // with a description E.g. // ### Cost // [$20.00](https://cloud.google.com/products/calculator?hl=en_US&_ga=2.1665458.-226505189.1675191136#id=02fb0c45-cc29-4567-8cc6-f72ac9024add) Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description" yaml:"description"` // @gotags: json:"description" yaml:"description" Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url" yaml:"url"` // @gotags: json:"url" yaml:"url" } func (x *BlueprintCostEstimate) Reset() { *x = BlueprintCostEstimate{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintCostEstimate) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintCostEstimate) ProtoMessage() {} func (x *BlueprintCostEstimate) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintCostEstimate.ProtoReflect.Descriptor instead. func (*BlueprintCostEstimate) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{13} } func (x *BlueprintCostEstimate) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintCostEstimate) GetUrl() string { if x != nil { return x.Url } return "" } // GCP cloud product(s) used in the blueprint. type BlueprintCloudProduct struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A top-level (e.g. "Compute Engine") or secondary (e.g. "Binary Authorization") // product used in the blueprint. // Gen: manually-authored ProductId string `protobuf:"bytes,1,opt,name=product_id,json=productId,proto3" json:"productId,omitempty" yaml:"productId,omitempty"` // @gotags: json:"productId,omitempty" yaml:"productId,omitempty" // Url for the product. // Gen: manually-authored PageUrl string `protobuf:"bytes,2,opt,name=page_url,json=pageUrl,proto3" json:"pageUrl" yaml:"pageUrl"` // @gotags: json:"pageUrl" yaml:"pageUrl" // A label string for the product, if it is not an integrated GCP product. // E.g. "Data Studio" // Gen: manually-authored Label string `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty" yaml:"label,omitempty"` // @gotags: json:"label,omitempty" yaml:"label,omitempty" // Is the product's landing page external to the GCP console e.g. // lookerstudio.google.com // Gen: manually-authored IsExternal bool `protobuf:"varint,4,opt,name=is_external,json=isExternal,proto3" json:"isExternal,omitempty" yaml:"isExternal,omitempty"` // @gotags: json:"isExternal,omitempty" yaml:"isExternal,omitempty" } func (x *BlueprintCloudProduct) Reset() { *x = BlueprintCloudProduct{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintCloudProduct) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintCloudProduct) ProtoMessage() {} func (x *BlueprintCloudProduct) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintCloudProduct.ProtoReflect.Descriptor instead. func (*BlueprintCloudProduct) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{14} } func (x *BlueprintCloudProduct) GetProductId() string { if x != nil { return x.ProductId } return "" } func (x *BlueprintCloudProduct) GetPageUrl() string { if x != nil { return x.PageUrl } return "" } func (x *BlueprintCloudProduct) GetLabel() string { if x != nil { return x.Label } return "" } func (x *BlueprintCloudProduct) GetIsExternal() bool { if x != nil { return x.IsExternal } return false } // BlueprintOrgPolicyCheck defines GCP org policies to be checked // for successful deployment type BlueprintOrgPolicyCheck struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Id for the policy e.g. "compute-vmExternalIpAccess" // Gen: manually-authored PolicyId string `protobuf:"bytes,1,opt,name=policy_id,json=policyId,proto3" json:"policyId" yaml:"policyId"` // @gotags: json:"policyId" yaml:"policyId" // If not set, it is assumed any version of this org policy // prevents successful deployment of this solution. // Gen: manually-authored RequiredValues []string `protobuf:"bytes,2,rep,name=required_values,json=requiredValues,proto3" json:"requiredValues,omitempty" yaml:"requiredValues,omitempty"` // @gotags: json:"requiredValues,omitempty" yaml:"requiredValues,omitempty" } func (x *BlueprintOrgPolicyCheck) Reset() { *x = BlueprintOrgPolicyCheck{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintOrgPolicyCheck) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintOrgPolicyCheck) ProtoMessage() {} func (x *BlueprintOrgPolicyCheck) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintOrgPolicyCheck.ProtoReflect.Descriptor instead. func (*BlueprintOrgPolicyCheck) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{15} } func (x *BlueprintOrgPolicyCheck) GetPolicyId() string { if x != nil { return x.PolicyId } return "" } func (x *BlueprintOrgPolicyCheck) GetRequiredValues() []string { if x != nil { return x.RequiredValues } return nil } // BlueprintQuotaDetail defines the quota details for a blueprint. type BlueprintQuotaDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // DynamicVariable, if provided, associates the provided input variable // with the corresponding resource and quota type. In its absence, the quota // detail is assumed to be fixed. // Gen: manually-authored DynamicVariable string `protobuf:"bytes,1,opt,name=dynamic_variable,json=dynamicVariable,proto3" json:"dynamicVariable,omitempty" yaml:"dynamicVariable,omitempty"` // @gotags: json:"dynamicVariable,omitempty" yaml:"dynamicVariable,omitempty" // ResourceType is the type of resource the quota will be applied to i.e. // GCE Instance or Disk etc. // Gen: manually-authored ResourceType QuotaResourceType `protobuf:"varint,2,opt,name=resource_type,json=resourceType,proto3,enum=google.cloud.config.bpmetadata.QuotaResourceType" json:"resourceType" yaml:"resourceType"` // @gotags: json:"resourceType" yaml:"resourceType" // QuotaType is a key/value pair of the actual quotas and their corresponding // values. Valid keys for quota_type can be: // MACHINE_TYPE, // CPUs, // DISK_TYPE OR // SIZE_GB. // Gen: manually-authored QuotaType map[string]string `protobuf:"bytes,3,rep,name=quota_type,json=quotaType,proto3" json:"quotaType" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" yaml:"quotaType"` // @gotags: json:"quotaType" yaml:"quotaType" } func (x *BlueprintQuotaDetail) Reset() { *x = BlueprintQuotaDetail{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintQuotaDetail) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintQuotaDetail) ProtoMessage() {} func (x *BlueprintQuotaDetail) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintQuotaDetail.ProtoReflect.Descriptor instead. func (*BlueprintQuotaDetail) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{16} } func (x *BlueprintQuotaDetail) GetDynamicVariable() string { if x != nil { return x.DynamicVariable } return "" } func (x *BlueprintQuotaDetail) GetResourceType() QuotaResourceType { if x != nil { return x.ResourceType } return QuotaResourceType_QRT_UNDEFINED } func (x *BlueprintQuotaDetail) GetQuotaType() map[string]string { if x != nil { return x.QuotaType } return nil } // BlueprintAuthor defines the author of a blueprint. type BlueprintAuthor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name of template author or organization. // Gen: manually-authored Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" yaml:"title"` // @gotags: json:"title" yaml:"title" // Description of the author. // Gen: manually-authored Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" // Link to the author's website. // Gen: manually-authored Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty" yaml:"url,omitempty"` // @gotags: json:"url,omitempty" yaml:"url,omitempty" } func (x *BlueprintAuthor) Reset() { *x = BlueprintAuthor{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintAuthor) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintAuthor) ProtoMessage() {} func (x *BlueprintAuthor) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintAuthor.ProtoReflect.Descriptor instead. func (*BlueprintAuthor) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{17} } func (x *BlueprintAuthor) GetTitle() string { if x != nil { return x.Title } return "" } func (x *BlueprintAuthor) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintAuthor) GetUrl() string { if x != nil { return x.Url } return "" } // A group of related software components for the blueprint. type BlueprintSoftwareGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Pre-defined software types. // Gen: manually-authored Type SoftwareGroupType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.config.bpmetadata.SoftwareGroupType" json:"type,omitempty" yaml:"type,omitempty"` // @gotags: json:"type,omitempty" yaml:"type,omitempty" // Software components belonging to this group. // Gen: manually-authored Software []*BlueprintSoftware `protobuf:"bytes,2,rep,name=software,proto3" json:"software,omitempty" yaml:"software,omitempty"` // @gotags: json:"software,omitempty" yaml:"software,omitempty" } func (x *BlueprintSoftwareGroup) Reset() { *x = BlueprintSoftwareGroup{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintSoftwareGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintSoftwareGroup) ProtoMessage() {} func (x *BlueprintSoftwareGroup) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintSoftwareGroup.ProtoReflect.Descriptor instead. func (*BlueprintSoftwareGroup) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{18} } func (x *BlueprintSoftwareGroup) GetType() SoftwareGroupType { if x != nil { return x.Type } return SoftwareGroupType_SG_UNSPECIFIED } func (x *BlueprintSoftwareGroup) GetSoftware() []*BlueprintSoftware { if x != nil { return x.Software } return nil } // A description of a piece of a single software component // installed by the blueprint. type BlueprintSoftware struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // User-visible title. // Gen: manually-authored Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" yaml:"title"` // @gotags: json:"title" yaml:"title" // Software version. // Gen: manually-authored Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty" yaml:"version,omitempty"` // @gotags: json:"version,omitempty" yaml:"version,omitempty" // Link to development site or marketing page for this software. // Gen: manually-authored Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty" yaml:"url,omitempty"` // @gotags: json:"url,omitempty" yaml:"url,omitempty" // Link to license page. // Gen: manually-authored LicenseUrl string `protobuf:"bytes,4,opt,name=license_url,json=licenseUrl,proto3" json:"licenseUrl,omitempty" yaml:"licenseUrl,omitempty"` // @gotags: json:"licenseUrl,omitempty" yaml:"licenseUrl,omitempty" } func (x *BlueprintSoftware) Reset() { *x = BlueprintSoftware{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintSoftware) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintSoftware) ProtoMessage() {} func (x *BlueprintSoftware) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintSoftware.ProtoReflect.Descriptor instead. func (*BlueprintSoftware) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{19} } func (x *BlueprintSoftware) GetTitle() string { if x != nil { return x.Title } return "" } func (x *BlueprintSoftware) GetVersion() string { if x != nil { return x.Version } return "" } func (x *BlueprintSoftware) GetUrl() string { if x != nil { return x.Url } return "" } func (x *BlueprintSoftware) GetLicenseUrl() string { if x != nil { return x.LicenseUrl } return "" } // A description of a support option type BlueprintSupport struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Description of the support option. // Gen: manually-authored Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description" yaml:"description"` // @gotags: json:"description" yaml:"description" // Link to the page providing this support option. // Gen: manually-authored Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty" yaml:"url,omitempty"` // @gotags: json:"url,omitempty" yaml:"url,omitempty" // The organization or group that provides the support option (e.g.: // "Community", "Google"). // Gen: manually-authored Entity string `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty" yaml:"entity,omitempty"` // @gotags: json:"entity,omitempty" yaml:"entity,omitempty" // Whether to show the customer's support ID. // Gen: manually-authored ShowSupportId bool `protobuf:"varint,4,opt,name=show_support_id,json=showSupportId,proto3" json:"showSupportId,omitempty" yaml:"showSupportId,omitempty"` // @gotags: json:"showSupportId,omitempty" yaml:"showSupportId,omitempty" } func (x *BlueprintSupport) Reset() { *x = BlueprintSupport{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintSupport) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintSupport) ProtoMessage() {} func (x *BlueprintSupport) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintSupport.ProtoReflect.Descriptor instead. func (*BlueprintSupport) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{20} } func (x *BlueprintSupport) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintSupport) GetUrl() string { if x != nil { return x.Url } return "" } func (x *BlueprintSupport) GetEntity() string { if x != nil { return x.Entity } return "" } func (x *BlueprintSupport) GetShowSupportId() bool { if x != nil { return x.ShowSupportId } return false } type BlueprintArchitecture struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Gen: auto-generated - the URL & list content following the "## Architecture" tag e.g. // ## Architecture // ![Blueprint Architecture](assets/architecture.png) // 1. Step no. 1 // 2. Step no. 2 // 3. Step no. 3 DiagramUrl string `protobuf:"bytes,1,opt,name=diagram_url,json=diagramUrl,proto3" json:"diagramUrl" yaml:"diagramUrl"` // @gotags: json:"diagramUrl" yaml:"diagramUrl" // Gen: auto-generated - the list items following the "## Architecture" tag. Description []string `protobuf:"bytes,2,rep,name=description,proto3" json:"description" yaml:"description"` // @gotags: json:"description" yaml:"description" } func (x *BlueprintArchitecture) Reset() { *x = BlueprintArchitecture{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintArchitecture) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintArchitecture) ProtoMessage() {} func (x *BlueprintArchitecture) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintArchitecture.ProtoReflect.Descriptor instead. func (*BlueprintArchitecture) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{21} } func (x *BlueprintArchitecture) GetDiagramUrl() string { if x != nil { return x.DiagramUrl } return "" } func (x *BlueprintArchitecture) GetDescription() []string { if x != nil { return x.Description } return nil } type BlueprintMiscContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" yaml:"name"` // @gotags: json:"name" yaml:"name" Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty" yaml:"location,omitempty"` // @gotags: json:"location,omitempty" yaml:"location,omitempty" } func (x *BlueprintMiscContent) Reset() { *x = BlueprintMiscContent{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintMiscContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintMiscContent) ProtoMessage() {} func (x *BlueprintMiscContent) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintMiscContent.ProtoReflect.Descriptor instead. func (*BlueprintMiscContent) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{22} } func (x *BlueprintMiscContent) GetName() string { if x != nil { return x.Name } return "" } func (x *BlueprintMiscContent) GetLocation() string { if x != nil { return x.Location } return "" } type BlueprintDiagram struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" yaml:"name"` // @gotags: json:"name" yaml:"name" AltText string `protobuf:"bytes,2,opt,name=alt_text,json=altText,proto3" json:"altText,omitempty" yaml:"altText,omitempty"` // @gotags: json:"altText,omitempty" yaml:"altText,omitempty" Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" } func (x *BlueprintDiagram) Reset() { *x = BlueprintDiagram{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintDiagram) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintDiagram) ProtoMessage() {} func (x *BlueprintDiagram) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintDiagram.ProtoReflect.Descriptor instead. func (*BlueprintDiagram) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{23} } func (x *BlueprintDiagram) GetName() string { if x != nil { return x.Name } return "" } func (x *BlueprintDiagram) GetAltText() string { if x != nil { return x.AltText } return "" } func (x *BlueprintDiagram) GetDescription() string { if x != nil { return x.Description } return "" } type BlueprintListContent struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title" yaml:"title"` // @gotags: json:"title" yaml:"title" Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty" yaml:"url,omitempty"` // @gotags: json:"url,omitempty" yaml:"url,omitempty" } func (x *BlueprintListContent) Reset() { *x = BlueprintListContent{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintListContent) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintListContent) ProtoMessage() {} func (x *BlueprintListContent) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintListContent.ProtoReflect.Descriptor instead. func (*BlueprintListContent) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{24} } func (x *BlueprintListContent) GetTitle() string { if x != nil { return x.Title } return "" } func (x *BlueprintListContent) GetUrl() string { if x != nil { return x.Url } return "" } type BlueprintVariable struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty" yaml:"name,omitempty"` // @gotags: json:"name,omitempty" yaml:"name,omitempty" Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" VarType string `protobuf:"bytes,3,opt,name=var_type,json=varType,proto3" json:"varType,omitempty" yaml:"varType,omitempty"` // @gotags: json:"varType,omitempty" yaml:"varType,omitempty" DefaultValue *structpb.Value `protobuf:"bytes,4,opt,name=default_value,json=defaultValue,proto3" json:"defaultValue,omitempty" yaml:"defaultValue,omitempty"` // @gotags: json:"defaultValue,omitempty" yaml:"defaultValue,omitempty" Required bool `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty" yaml:"required,omitempty"` // @gotags: json:"required,omitempty" yaml:"required,omitempty" // Incoming connections to this variable. // Connections are outputs from other blueprints that can be potentially // connected to this variable. // Gen: manually-authored. Connections []*BlueprintConnection `protobuf:"bytes,6,rep,name=connections,proto3" json:"connections,omitempty" yaml:"connections,omitempty"` // @gotags: json:"connections,omitempty" yaml:"connections,omitempty" } func (x *BlueprintVariable) Reset() { *x = BlueprintVariable{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintVariable) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintVariable) ProtoMessage() {} func (x *BlueprintVariable) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintVariable.ProtoReflect.Descriptor instead. func (*BlueprintVariable) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{25} } func (x *BlueprintVariable) GetName() string { if x != nil { return x.Name } return "" } func (x *BlueprintVariable) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintVariable) GetVarType() string { if x != nil { return x.VarType } return "" } func (x *BlueprintVariable) GetDefaultValue() *structpb.Value { if x != nil { return x.DefaultValue } return nil } func (x *BlueprintVariable) GetRequired() bool { if x != nil { return x.Required } return false } func (x *BlueprintVariable) GetConnections() []*BlueprintConnection { if x != nil { return x.Connections } return nil } // Defines an incoming connection from a blueprint. type BlueprintConnection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Source of the connection. // Gen: manually-authored. Source *ConnectionSource `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty" yaml:"source,omitempty"` // @gotags: json:"source,omitempty" yaml:"source,omitempty" // Connection specifications. // Gen: manually-authored. Spec *ConnectionSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty" yaml:"spec,omitempty"` // @gotags: json:"spec,omitempty" yaml:"spec,omitempty" } func (x *BlueprintConnection) Reset() { *x = BlueprintConnection{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintConnection) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintConnection) ProtoMessage() {} func (x *BlueprintConnection) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintConnection.ProtoReflect.Descriptor instead. func (*BlueprintConnection) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{26} } func (x *BlueprintConnection) GetSource() *ConnectionSource { if x != nil { return x.Source } return nil } func (x *BlueprintConnection) GetSpec() *ConnectionSpec { if x != nil { return x.Spec } return nil } // Defines the source of a connection. type ConnectionSource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Source of the connection. Defined using the same format as module source // of form [hostname]/namespace/name/provider for registry references and // unprefixed github.com URLs for github references. // Gen: manually-authored. Source string `protobuf:"bytes,1,opt,name=source,proto3" json:"source,omitempty" yaml:"source,omitempty"` // @gotags: json:"source,omitempty" yaml:"source,omitempty" // Version constraint syntax using the same format as module version // constraints. // Gen: manually-authored. Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty" yaml:"version,omitempty"` // @gotags: json:"version,omitempty" yaml:"version,omitempty" } func (x *ConnectionSource) Reset() { *x = ConnectionSource{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConnectionSource) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConnectionSource) ProtoMessage() {} func (x *ConnectionSource) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 ConnectionSource.ProtoReflect.Descriptor instead. func (*ConnectionSource) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{27} } func (x *ConnectionSource) GetSource() string { if x != nil { return x.Source } return "" } func (x *ConnectionSource) GetVersion() string { if x != nil { return x.Version } return "" } // Defines the specifications of a connection. type ConnectionSpec struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output expression identifying output being connected to variable. // This can be the output name or more complex expression like attribuite notation. // Gen: manually-authored. OutputExpr string `protobuf:"bytes,1,opt,name=output_expr,json=outputExpr,proto3" json:"outputExpr,omitempty" yaml:"outputExpr,omitempty"` // @gotags: json:"outputExpr,omitempty" yaml:"outputExpr,omitempty" // Optional dot separated attribuite notation to connect to a specific object field of the input variable. // Gen: manually-authored. InputPath *string `protobuf:"bytes,2,opt,name=input_path,json=inputPath,proto3,oneof" json:"inputPath,omitempty" yaml:"inputPath,omitempty"` // @gotags: json:"inputPath,omitempty" yaml:"inputPath,omitempty" } func (x *ConnectionSpec) Reset() { *x = ConnectionSpec{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ConnectionSpec) String() string { return protoimpl.X.MessageStringOf(x) } func (*ConnectionSpec) ProtoMessage() {} func (x *ConnectionSpec) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 ConnectionSpec.ProtoReflect.Descriptor instead. func (*ConnectionSpec) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{28} } func (x *ConnectionSpec) GetOutputExpr() string { if x != nil { return x.OutputExpr } return "" } func (x *ConnectionSpec) GetInputPath() string { if x != nil && x.InputPath != nil { return *x.InputPath } return "" } // BlueprintVariableGroup is manually entered. type BlueprintVariableGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" yaml:"name"` // @gotags: json:"name" yaml:"name" Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" Variables []string `protobuf:"bytes,3,rep,name=variables,proto3" json:"variables,omitempty" yaml:"variables,omitempty"` // @gotags: json:"variables,omitempty" yaml:"variables,omitempty" } func (x *BlueprintVariableGroup) Reset() { *x = BlueprintVariableGroup{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintVariableGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintVariableGroup) ProtoMessage() {} func (x *BlueprintVariableGroup) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintVariableGroup.ProtoReflect.Descriptor instead. func (*BlueprintVariableGroup) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{29} } func (x *BlueprintVariableGroup) GetName() string { if x != nil { return x.Name } return "" } func (x *BlueprintVariableGroup) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintVariableGroup) GetVariables() []string { if x != nil { return x.Variables } return nil } type BlueprintOutput struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name" yaml:"name"` // @gotags: json:"name" yaml:"name" Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty" yaml:"description,omitempty"` // @gotags: json:"description,omitempty" yaml:"description,omitempty" // Serialized type representation of the output value. // Gen: manually-authored but will be automated in the future. Type *structpb.Value `protobuf:"bytes,3,opt,name=type,proto3,oneof" json:"type,omitempty" yaml:"type,omitempty"` // @gotags: json:"type,omitempty" yaml:"type,omitempty" } func (x *BlueprintOutput) Reset() { *x = BlueprintOutput{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintOutput) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintOutput) ProtoMessage() {} func (x *BlueprintOutput) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintOutput.ProtoReflect.Descriptor instead. func (*BlueprintOutput) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{30} } func (x *BlueprintOutput) GetName() string { if x != nil { return x.Name } return "" } func (x *BlueprintOutput) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BlueprintOutput) GetType() *structpb.Value { if x != nil { return x.Type } return nil } type BlueprintRoles struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Level string `protobuf:"bytes,1,opt,name=level,proto3" json:"level" yaml:"level"` // @gotags: json:"level" yaml:"level" Roles []string `protobuf:"bytes,2,rep,name=roles,proto3" json:"roles" yaml:"roles"` // @gotags: json:"roles" yaml:"roles" } func (x *BlueprintRoles) Reset() { *x = BlueprintRoles{} if protoimpl.UnsafeEnabled { mi := &file_bpmetadata_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BlueprintRoles) String() string { return protoimpl.X.MessageStringOf(x) } func (*BlueprintRoles) ProtoMessage() {} func (x *BlueprintRoles) ProtoReflect() protoreflect.Message { mi := &file_bpmetadata_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 BlueprintRoles.ProtoReflect.Descriptor instead. func (*BlueprintRoles) Descriptor() ([]byte, []int) { return file_bpmetadata_proto_rawDescGZIP(), []int{31} } func (x *BlueprintRoles) GetLevel() string { if x != nil { return x.Level } return "" } func (x *BlueprintRoles) GetRoles() []string { if x != nil { return x.Roles } return nil } var File_bpmetadata_proto protoreflect.FileDescriptor var file_bpmetadata_proto_rawDesc = []byte{ 0x0a, 0x10, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x1a, 0x13, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x75, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0xdc, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x63, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x92, 0x03, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x12, 0x41, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3b, 0x0a, 0x02, 0x75, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x55, 0x49, 0x52, 0x02, 0x75, 0x69, 0x22, 0xe5, 0x08, 0x0a, 0x0d, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0e, 0x61, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6f, 0x6c, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x56, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x66, 0x0a, 0x13, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x0d, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x73, 0x12, 0x59, 0x0a, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0c, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x47, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x5f, 0x0a, 0x0f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x53, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0b, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x63, 0x0a, 0x11, 0x6f, 0x72, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4f, 0x72, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x0f, 0x6f, 0x72, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xc6, 0x03, 0x0a, 0x10, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x4c, 0x0a, 0x08, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x08, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5a, 0x0a, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x69, 0x73, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x69, 0x73, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x73, 0x22, 0x91, 0x02, 0x0a, 0x12, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x49, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x22, 0xd7, 0x01, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x43, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0xa2, 0x01, 0x0a, 0x0b, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x55, 0x49, 0x12, 0x46, 0x0a, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x55, 0x49, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x4b, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x55, 0x49, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x13, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x65, 0x70, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x22, 0x4a, 0x0a, 0x16, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6c, 0x61, 0x76, 0x6f, 0x72, 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, 0xc0, 0x01, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x61, 0x67, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x65, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x74, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x74, 0x6d, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x75, 0x6c, 0x61, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x65, 0x75, 0x6c, 0x61, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x22, 0x6f, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0x4b, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x88, 0x01, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, 0x5f, 0x0a, 0x17, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4f, 0x72, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xbb, 0x02, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 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, 0x5b, 0x0a, 0x0f, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 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, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xae, 0x01, 0x0a, 0x16, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x45, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x52, 0x08, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x22, 0x76, 0x0a, 0x11, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 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, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x86, 0x01, 0x0a, 0x10, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x22, 0x5a, 0x0a, 0x15, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x41, 0x72, 0x63, 0x68, 0x69, 0x74, 0x65, 0x63, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4d, 0x69, 0x73, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0x0a, 0x10, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x44, 0x69, 0x61, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x5f, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x74, 0x54, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0x0a, 0x14, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x94, 0x02, 0x0a, 0x11, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 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, 0x12, 0x19, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x55, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x13, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x22, 0x44, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 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, 0x64, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x45, 0x78, 0x70, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0x6c, 0x0a, 0x16, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x12, 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 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, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x3c, 0x0a, 0x0e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x2a, 0x6a, 0x0a, 0x11, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x51, 0x52, 0x54, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x51, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x43, 0x45, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x51, 0x52, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x43, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x4b, 0x10, 0x02, 0x2a, 0x32, 0x0a, 0x11, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x47, 0x5f, 0x4f, 0x53, 0x10, 0x01, 0x42, 0x48, 0x5a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2d, 0x74, 0x6f, 0x6f, 0x6c, 0x6b, 0x69, 0x74, 0x2f, 0x63, 0x6c, 0x69, 0x2f, 0x62, 0x70, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_bpmetadata_proto_rawDescOnce sync.Once file_bpmetadata_proto_rawDescData = file_bpmetadata_proto_rawDesc ) func file_bpmetadata_proto_rawDescGZIP() []byte { file_bpmetadata_proto_rawDescOnce.Do(func() { file_bpmetadata_proto_rawDescData = protoimpl.X.CompressGZIP(file_bpmetadata_proto_rawDescData) }) return file_bpmetadata_proto_rawDescData } var file_bpmetadata_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_bpmetadata_proto_msgTypes = make([]protoimpl.MessageInfo, 35) var file_bpmetadata_proto_goTypes = []interface{}{ (QuotaResourceType)(0), // 0: google.cloud.config.bpmetadata.QuotaResourceType (SoftwareGroupType)(0), // 1: google.cloud.config.bpmetadata.SoftwareGroupType (*BlueprintMetadata)(nil), // 2: google.cloud.config.bpmetadata.BlueprintMetadata (*ResourceTypeMeta)(nil), // 3: google.cloud.config.bpmetadata.ResourceTypeMeta (*BlueprintMetadataSpec)(nil), // 4: google.cloud.config.bpmetadata.BlueprintMetadataSpec (*BlueprintInfo)(nil), // 5: google.cloud.config.bpmetadata.BlueprintInfo (*BlueprintContent)(nil), // 6: google.cloud.config.bpmetadata.BlueprintContent (*BlueprintInterface)(nil), // 7: google.cloud.config.bpmetadata.BlueprintInterface (*BlueprintRequirements)(nil), // 8: google.cloud.config.bpmetadata.BlueprintRequirements (*ProviderVersion)(nil), // 9: google.cloud.config.bpmetadata.ProviderVersion (*BlueprintUI)(nil), // 10: google.cloud.config.bpmetadata.BlueprintUI (*BlueprintRepoDetail)(nil), // 11: google.cloud.config.bpmetadata.BlueprintRepoDetail (*BlueprintActuationTool)(nil), // 12: google.cloud.config.bpmetadata.BlueprintActuationTool (*BlueprintDescription)(nil), // 13: google.cloud.config.bpmetadata.BlueprintDescription (*BlueprintTimeEstimate)(nil), // 14: google.cloud.config.bpmetadata.BlueprintTimeEstimate (*BlueprintCostEstimate)(nil), // 15: google.cloud.config.bpmetadata.BlueprintCostEstimate (*BlueprintCloudProduct)(nil), // 16: google.cloud.config.bpmetadata.BlueprintCloudProduct (*BlueprintOrgPolicyCheck)(nil), // 17: google.cloud.config.bpmetadata.BlueprintOrgPolicyCheck (*BlueprintQuotaDetail)(nil), // 18: google.cloud.config.bpmetadata.BlueprintQuotaDetail (*BlueprintAuthor)(nil), // 19: google.cloud.config.bpmetadata.BlueprintAuthor (*BlueprintSoftwareGroup)(nil), // 20: google.cloud.config.bpmetadata.BlueprintSoftwareGroup (*BlueprintSoftware)(nil), // 21: google.cloud.config.bpmetadata.BlueprintSoftware (*BlueprintSupport)(nil), // 22: google.cloud.config.bpmetadata.BlueprintSupport (*BlueprintArchitecture)(nil), // 23: google.cloud.config.bpmetadata.BlueprintArchitecture (*BlueprintMiscContent)(nil), // 24: google.cloud.config.bpmetadata.BlueprintMiscContent (*BlueprintDiagram)(nil), // 25: google.cloud.config.bpmetadata.BlueprintDiagram (*BlueprintListContent)(nil), // 26: google.cloud.config.bpmetadata.BlueprintListContent (*BlueprintVariable)(nil), // 27: google.cloud.config.bpmetadata.BlueprintVariable (*BlueprintConnection)(nil), // 28: google.cloud.config.bpmetadata.BlueprintConnection (*ConnectionSource)(nil), // 29: google.cloud.config.bpmetadata.ConnectionSource (*ConnectionSpec)(nil), // 30: google.cloud.config.bpmetadata.ConnectionSpec (*BlueprintVariableGroup)(nil), // 31: google.cloud.config.bpmetadata.BlueprintVariableGroup (*BlueprintOutput)(nil), // 32: google.cloud.config.bpmetadata.BlueprintOutput (*BlueprintRoles)(nil), // 33: google.cloud.config.bpmetadata.BlueprintRoles nil, // 34: google.cloud.config.bpmetadata.ResourceTypeMeta.LabelsEntry nil, // 35: google.cloud.config.bpmetadata.ResourceTypeMeta.AnnotationsEntry nil, // 36: google.cloud.config.bpmetadata.BlueprintQuotaDetail.QuotaTypeEntry (*BlueprintUIInput)(nil), // 37: google.cloud.config.bpmetadata.BlueprintUIInput (*BlueprintUIOutput)(nil), // 38: google.cloud.config.bpmetadata.BlueprintUIOutput (*structpb.Value)(nil), // 39: google.protobuf.Value } var file_bpmetadata_proto_depIdxs = []int32{ 3, // 0: google.cloud.config.bpmetadata.BlueprintMetadata.metadata:type_name -> google.cloud.config.bpmetadata.ResourceTypeMeta 4, // 1: google.cloud.config.bpmetadata.BlueprintMetadata.spec:type_name -> google.cloud.config.bpmetadata.BlueprintMetadataSpec 34, // 2: google.cloud.config.bpmetadata.ResourceTypeMeta.labels:type_name -> google.cloud.config.bpmetadata.ResourceTypeMeta.LabelsEntry 35, // 3: google.cloud.config.bpmetadata.ResourceTypeMeta.annotations:type_name -> google.cloud.config.bpmetadata.ResourceTypeMeta.AnnotationsEntry 5, // 4: google.cloud.config.bpmetadata.BlueprintMetadataSpec.info:type_name -> google.cloud.config.bpmetadata.BlueprintInfo 6, // 5: google.cloud.config.bpmetadata.BlueprintMetadataSpec.content:type_name -> google.cloud.config.bpmetadata.BlueprintContent 7, // 6: google.cloud.config.bpmetadata.BlueprintMetadataSpec.interfaces:type_name -> google.cloud.config.bpmetadata.BlueprintInterface 8, // 7: google.cloud.config.bpmetadata.BlueprintMetadataSpec.requirements:type_name -> google.cloud.config.bpmetadata.BlueprintRequirements 10, // 8: google.cloud.config.bpmetadata.BlueprintMetadataSpec.ui:type_name -> google.cloud.config.bpmetadata.BlueprintUI 11, // 9: google.cloud.config.bpmetadata.BlueprintInfo.source:type_name -> google.cloud.config.bpmetadata.BlueprintRepoDetail 12, // 10: google.cloud.config.bpmetadata.BlueprintInfo.actuation_tool:type_name -> google.cloud.config.bpmetadata.BlueprintActuationTool 13, // 11: google.cloud.config.bpmetadata.BlueprintInfo.description:type_name -> google.cloud.config.bpmetadata.BlueprintDescription 14, // 12: google.cloud.config.bpmetadata.BlueprintInfo.deployment_duration:type_name -> google.cloud.config.bpmetadata.BlueprintTimeEstimate 15, // 13: google.cloud.config.bpmetadata.BlueprintInfo.cost_estimate:type_name -> google.cloud.config.bpmetadata.BlueprintCostEstimate 16, // 14: google.cloud.config.bpmetadata.BlueprintInfo.cloud_products:type_name -> google.cloud.config.bpmetadata.BlueprintCloudProduct 18, // 15: google.cloud.config.bpmetadata.BlueprintInfo.quota_details:type_name -> google.cloud.config.bpmetadata.BlueprintQuotaDetail 19, // 16: google.cloud.config.bpmetadata.BlueprintInfo.author:type_name -> google.cloud.config.bpmetadata.BlueprintAuthor 20, // 17: google.cloud.config.bpmetadata.BlueprintInfo.software_groups:type_name -> google.cloud.config.bpmetadata.BlueprintSoftwareGroup 22, // 18: google.cloud.config.bpmetadata.BlueprintInfo.support_info:type_name -> google.cloud.config.bpmetadata.BlueprintSupport 17, // 19: google.cloud.config.bpmetadata.BlueprintInfo.org_policy_checks:type_name -> google.cloud.config.bpmetadata.BlueprintOrgPolicyCheck 23, // 20: google.cloud.config.bpmetadata.BlueprintContent.architecture:type_name -> google.cloud.config.bpmetadata.BlueprintArchitecture 25, // 21: google.cloud.config.bpmetadata.BlueprintContent.diagrams:type_name -> google.cloud.config.bpmetadata.BlueprintDiagram 26, // 22: google.cloud.config.bpmetadata.BlueprintContent.documentation:type_name -> google.cloud.config.bpmetadata.BlueprintListContent 24, // 23: google.cloud.config.bpmetadata.BlueprintContent.sub_blueprints:type_name -> google.cloud.config.bpmetadata.BlueprintMiscContent 24, // 24: google.cloud.config.bpmetadata.BlueprintContent.examples:type_name -> google.cloud.config.bpmetadata.BlueprintMiscContent 27, // 25: google.cloud.config.bpmetadata.BlueprintInterface.variables:type_name -> google.cloud.config.bpmetadata.BlueprintVariable 31, // 26: google.cloud.config.bpmetadata.BlueprintInterface.variable_groups:type_name -> google.cloud.config.bpmetadata.BlueprintVariableGroup 32, // 27: google.cloud.config.bpmetadata.BlueprintInterface.outputs:type_name -> google.cloud.config.bpmetadata.BlueprintOutput 33, // 28: google.cloud.config.bpmetadata.BlueprintRequirements.roles:type_name -> google.cloud.config.bpmetadata.BlueprintRoles 9, // 29: google.cloud.config.bpmetadata.BlueprintRequirements.provider_versions:type_name -> google.cloud.config.bpmetadata.ProviderVersion 37, // 30: google.cloud.config.bpmetadata.BlueprintUI.input:type_name -> google.cloud.config.bpmetadata.BlueprintUIInput 38, // 31: google.cloud.config.bpmetadata.BlueprintUI.runtime:type_name -> google.cloud.config.bpmetadata.BlueprintUIOutput 0, // 32: google.cloud.config.bpmetadata.BlueprintQuotaDetail.resource_type:type_name -> google.cloud.config.bpmetadata.QuotaResourceType 36, // 33: google.cloud.config.bpmetadata.BlueprintQuotaDetail.quota_type:type_name -> google.cloud.config.bpmetadata.BlueprintQuotaDetail.QuotaTypeEntry 1, // 34: google.cloud.config.bpmetadata.BlueprintSoftwareGroup.type:type_name -> google.cloud.config.bpmetadata.SoftwareGroupType 21, // 35: google.cloud.config.bpmetadata.BlueprintSoftwareGroup.software:type_name -> google.cloud.config.bpmetadata.BlueprintSoftware 39, // 36: google.cloud.config.bpmetadata.BlueprintVariable.default_value:type_name -> google.protobuf.Value 28, // 37: google.cloud.config.bpmetadata.BlueprintVariable.connections:type_name -> google.cloud.config.bpmetadata.BlueprintConnection 29, // 38: google.cloud.config.bpmetadata.BlueprintConnection.source:type_name -> google.cloud.config.bpmetadata.ConnectionSource 30, // 39: google.cloud.config.bpmetadata.BlueprintConnection.spec:type_name -> google.cloud.config.bpmetadata.ConnectionSpec 39, // 40: google.cloud.config.bpmetadata.BlueprintOutput.type:type_name -> google.protobuf.Value 41, // [41:41] is the sub-list for method output_type 41, // [41:41] is the sub-list for method input_type 41, // [41:41] is the sub-list for extension type_name 41, // [41:41] is the sub-list for extension extendee 0, // [0:41] is the sub-list for field type_name } func init() { file_bpmetadata_proto_init() } func file_bpmetadata_proto_init() { if File_bpmetadata_proto != nil { return } file_bpmetadata_ui_proto_init() if !protoimpl.UnsafeEnabled { file_bpmetadata_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResourceTypeMeta); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintMetadataSpec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintInterface); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintRequirements); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ProviderVersion); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintUI); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintRepoDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintActuationTool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintDescription); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintTimeEstimate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintCostEstimate); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintCloudProduct); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintOrgPolicyCheck); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintQuotaDetail); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintAuthor); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintSoftwareGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintSoftware); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintSupport); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintArchitecture); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintMiscContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintDiagram); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintListContent); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintVariable); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintConnection); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectionSource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ConnectionSpec); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintVariableGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintOutput); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_bpmetadata_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BlueprintRoles); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_bpmetadata_proto_msgTypes[28].OneofWrappers = []interface{}{} file_bpmetadata_proto_msgTypes[30].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_bpmetadata_proto_rawDesc, NumEnums: 2, NumMessages: 35, NumExtensions: 0, NumServices: 0, }, GoTypes: file_bpmetadata_proto_goTypes, DependencyIndexes: file_bpmetadata_proto_depIdxs, EnumInfos: file_bpmetadata_proto_enumTypes, MessageInfos: file_bpmetadata_proto_msgTypes, }.Build() File_bpmetadata_proto = out.File file_bpmetadata_proto_rawDesc = nil file_bpmetadata_proto_goTypes = nil file_bpmetadata_proto_depIdxs = nil }