// Copyright 2020 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.22.0 // protoc v3.11.2 // source: google/devtools/cloudbuild/v1/cloudbuild.proto package cloudbuild import ( context "context" reflect "reflect" sync "sync" proto "github.com/golang/protobuf/proto" duration "github.com/golang/protobuf/ptypes/duration" empty "github.com/golang/protobuf/ptypes/empty" timestamp "github.com/golang/protobuf/ptypes/timestamp" _ "google.golang.org/genproto/googleapis/api/annotations" longrunning "google.golang.org/genproto/googleapis/longrunning" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) 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) ) // This is a compile-time assertion that a sufficiently up-to-date version // of the legacy proto package is being used. const _ = proto.ProtoPackageIsVersion4 // Possible status of a build or build step. type Build_Status int32 const ( // Status of the build is unknown. Build_STATUS_UNKNOWN Build_Status = 0 // Build or step is queued; work has not yet begun. Build_QUEUED Build_Status = 1 // Build or step is being executed. Build_WORKING Build_Status = 2 // Build or step finished successfully. Build_SUCCESS Build_Status = 3 // Build or step failed to complete successfully. Build_FAILURE Build_Status = 4 // Build or step failed due to an internal cause. Build_INTERNAL_ERROR Build_Status = 5 // Build or step took longer than was allowed. Build_TIMEOUT Build_Status = 6 // Build or step was canceled by a user. Build_CANCELLED Build_Status = 7 // Build was enqueued for longer than the value of `queue_ttl`. Build_EXPIRED Build_Status = 9 ) // Enum value maps for Build_Status. var ( Build_Status_name = map[int32]string{ 0: "STATUS_UNKNOWN", 1: "QUEUED", 2: "WORKING", 3: "SUCCESS", 4: "FAILURE", 5: "INTERNAL_ERROR", 6: "TIMEOUT", 7: "CANCELLED", 9: "EXPIRED", } Build_Status_value = map[string]int32{ "STATUS_UNKNOWN": 0, "QUEUED": 1, "WORKING": 2, "SUCCESS": 3, "FAILURE": 4, "INTERNAL_ERROR": 5, "TIMEOUT": 6, "CANCELLED": 7, "EXPIRED": 9, } ) func (x Build_Status) Enum() *Build_Status { p := new(Build_Status) *p = x return p } func (x Build_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Build_Status) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[0].Descriptor() } func (Build_Status) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[0] } func (x Build_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Build_Status.Descriptor instead. func (Build_Status) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{10, 0} } // Specifies the hash algorithm, if any. type Hash_HashType int32 const ( // No hash requested. Hash_NONE Hash_HashType = 0 // Use a sha256 hash. Hash_SHA256 Hash_HashType = 1 // Use a md5 hash. Hash_MD5 Hash_HashType = 2 ) // Enum value maps for Hash_HashType. var ( Hash_HashType_name = map[int32]string{ 0: "NONE", 1: "SHA256", 2: "MD5", } Hash_HashType_value = map[string]int32{ "NONE": 0, "SHA256": 1, "MD5": 2, } ) func (x Hash_HashType) Enum() *Hash_HashType { p := new(Hash_HashType) *p = x return p } func (x Hash_HashType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Hash_HashType) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[1].Descriptor() } func (Hash_HashType) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[1] } func (x Hash_HashType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Hash_HashType.Descriptor instead. func (Hash_HashType) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{16, 0} } // Controls behavior of Pull Request comments. type PullRequestFilter_CommentControl int32 const ( // Do not require comments on Pull Requests before builds are triggered. PullRequestFilter_COMMENTS_DISABLED PullRequestFilter_CommentControl = 0 // Enforce that repository owners or collaborators must comment on Pull // Requests before builds are triggered. PullRequestFilter_COMMENTS_ENABLED PullRequestFilter_CommentControl = 1 ) // Enum value maps for PullRequestFilter_CommentControl. var ( PullRequestFilter_CommentControl_name = map[int32]string{ 0: "COMMENTS_DISABLED", 1: "COMMENTS_ENABLED", } PullRequestFilter_CommentControl_value = map[string]int32{ "COMMENTS_DISABLED": 0, "COMMENTS_ENABLED": 1, } ) func (x PullRequestFilter_CommentControl) Enum() *PullRequestFilter_CommentControl { p := new(PullRequestFilter_CommentControl) *p = x return p } func (x PullRequestFilter_CommentControl) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (PullRequestFilter_CommentControl) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[2].Descriptor() } func (PullRequestFilter_CommentControl) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[2] } func (x PullRequestFilter_CommentControl) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use PullRequestFilter_CommentControl.Descriptor instead. func (PullRequestFilter_CommentControl) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{25, 0} } // Specifies the manner in which the build should be verified, if at all. type BuildOptions_VerifyOption int32 const ( // Not a verifiable build. (default) BuildOptions_NOT_VERIFIED BuildOptions_VerifyOption = 0 // Verified build. BuildOptions_VERIFIED BuildOptions_VerifyOption = 1 ) // Enum value maps for BuildOptions_VerifyOption. var ( BuildOptions_VerifyOption_name = map[int32]string{ 0: "NOT_VERIFIED", 1: "VERIFIED", } BuildOptions_VerifyOption_value = map[string]int32{ "NOT_VERIFIED": 0, "VERIFIED": 1, } ) func (x BuildOptions_VerifyOption) Enum() *BuildOptions_VerifyOption { p := new(BuildOptions_VerifyOption) *p = x return p } func (x BuildOptions_VerifyOption) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BuildOptions_VerifyOption) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[3].Descriptor() } func (BuildOptions_VerifyOption) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[3] } func (x BuildOptions_VerifyOption) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BuildOptions_VerifyOption.Descriptor instead. func (BuildOptions_VerifyOption) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33, 0} } // Supported VM sizes. type BuildOptions_MachineType int32 const ( // Standard machine type. BuildOptions_UNSPECIFIED BuildOptions_MachineType = 0 // Highcpu machine with 8 CPUs. BuildOptions_N1_HIGHCPU_8 BuildOptions_MachineType = 1 // Highcpu machine with 32 CPUs. BuildOptions_N1_HIGHCPU_32 BuildOptions_MachineType = 2 ) // Enum value maps for BuildOptions_MachineType. var ( BuildOptions_MachineType_name = map[int32]string{ 0: "UNSPECIFIED", 1: "N1_HIGHCPU_8", 2: "N1_HIGHCPU_32", } BuildOptions_MachineType_value = map[string]int32{ "UNSPECIFIED": 0, "N1_HIGHCPU_8": 1, "N1_HIGHCPU_32": 2, } ) func (x BuildOptions_MachineType) Enum() *BuildOptions_MachineType { p := new(BuildOptions_MachineType) *p = x return p } func (x BuildOptions_MachineType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BuildOptions_MachineType) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[4].Descriptor() } func (BuildOptions_MachineType) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[4] } func (x BuildOptions_MachineType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BuildOptions_MachineType.Descriptor instead. func (BuildOptions_MachineType) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33, 1} } // Specifies the behavior when there is an error in the substitution checks. type BuildOptions_SubstitutionOption int32 const ( // Fails the build if error in substitutions checks, like missing // a substitution in the template or in the map. BuildOptions_MUST_MATCH BuildOptions_SubstitutionOption = 0 // Do not fail the build if error in substitutions checks. BuildOptions_ALLOW_LOOSE BuildOptions_SubstitutionOption = 1 ) // Enum value maps for BuildOptions_SubstitutionOption. var ( BuildOptions_SubstitutionOption_name = map[int32]string{ 0: "MUST_MATCH", 1: "ALLOW_LOOSE", } BuildOptions_SubstitutionOption_value = map[string]int32{ "MUST_MATCH": 0, "ALLOW_LOOSE": 1, } ) func (x BuildOptions_SubstitutionOption) Enum() *BuildOptions_SubstitutionOption { p := new(BuildOptions_SubstitutionOption) *p = x return p } func (x BuildOptions_SubstitutionOption) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BuildOptions_SubstitutionOption) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[5].Descriptor() } func (BuildOptions_SubstitutionOption) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[5] } func (x BuildOptions_SubstitutionOption) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BuildOptions_SubstitutionOption.Descriptor instead. func (BuildOptions_SubstitutionOption) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33, 2} } // Specifies the behavior when writing build logs to Google Cloud Storage. type BuildOptions_LogStreamingOption int32 const ( // Service may automatically determine build log streaming behavior. BuildOptions_STREAM_DEFAULT BuildOptions_LogStreamingOption = 0 // Build logs should be streamed to Google Cloud Storage. BuildOptions_STREAM_ON BuildOptions_LogStreamingOption = 1 // Build logs should not be streamed to Google Cloud Storage; they will be // written when the build is completed. BuildOptions_STREAM_OFF BuildOptions_LogStreamingOption = 2 ) // Enum value maps for BuildOptions_LogStreamingOption. var ( BuildOptions_LogStreamingOption_name = map[int32]string{ 0: "STREAM_DEFAULT", 1: "STREAM_ON", 2: "STREAM_OFF", } BuildOptions_LogStreamingOption_value = map[string]int32{ "STREAM_DEFAULT": 0, "STREAM_ON": 1, "STREAM_OFF": 2, } ) func (x BuildOptions_LogStreamingOption) Enum() *BuildOptions_LogStreamingOption { p := new(BuildOptions_LogStreamingOption) *p = x return p } func (x BuildOptions_LogStreamingOption) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BuildOptions_LogStreamingOption) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[6].Descriptor() } func (BuildOptions_LogStreamingOption) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[6] } func (x BuildOptions_LogStreamingOption) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BuildOptions_LogStreamingOption.Descriptor instead. func (BuildOptions_LogStreamingOption) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33, 3} } // Specifies the logging mode. type BuildOptions_LoggingMode int32 const ( // The service determines the logging mode. The default is `LEGACY`. Do not // rely on the default logging behavior as it may change in the future. BuildOptions_LOGGING_UNSPECIFIED BuildOptions_LoggingMode = 0 // Stackdriver logging and Cloud Storage logging are enabled. BuildOptions_LEGACY BuildOptions_LoggingMode = 1 // Only Cloud Storage logging is enabled. BuildOptions_GCS_ONLY BuildOptions_LoggingMode = 2 ) // Enum value maps for BuildOptions_LoggingMode. var ( BuildOptions_LoggingMode_name = map[int32]string{ 0: "LOGGING_UNSPECIFIED", 1: "LEGACY", 2: "GCS_ONLY", } BuildOptions_LoggingMode_value = map[string]int32{ "LOGGING_UNSPECIFIED": 0, "LEGACY": 1, "GCS_ONLY": 2, } ) func (x BuildOptions_LoggingMode) Enum() *BuildOptions_LoggingMode { p := new(BuildOptions_LoggingMode) *p = x return p } func (x BuildOptions_LoggingMode) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (BuildOptions_LoggingMode) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[7].Descriptor() } func (BuildOptions_LoggingMode) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[7] } func (x BuildOptions_LoggingMode) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use BuildOptions_LoggingMode.Descriptor instead. func (BuildOptions_LoggingMode) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33, 4} } // Supported GCP regions to create the `WorkerPool`. type WorkerPool_Region int32 const ( // no region WorkerPool_REGION_UNSPECIFIED WorkerPool_Region = 0 // us-central1 region WorkerPool_US_CENTRAL1 WorkerPool_Region = 1 // us-west1 region WorkerPool_US_WEST1 WorkerPool_Region = 2 // us-east1 region WorkerPool_US_EAST1 WorkerPool_Region = 3 // us-east4 region WorkerPool_US_EAST4 WorkerPool_Region = 4 ) // Enum value maps for WorkerPool_Region. var ( WorkerPool_Region_name = map[int32]string{ 0: "REGION_UNSPECIFIED", 1: "US_CENTRAL1", 2: "US_WEST1", 3: "US_EAST1", 4: "US_EAST4", } WorkerPool_Region_value = map[string]int32{ "REGION_UNSPECIFIED": 0, "US_CENTRAL1": 1, "US_WEST1": 2, "US_EAST1": 3, "US_EAST4": 4, } ) func (x WorkerPool_Region) Enum() *WorkerPool_Region { p := new(WorkerPool_Region) *p = x return p } func (x WorkerPool_Region) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WorkerPool_Region) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[8].Descriptor() } func (WorkerPool_Region) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[8] } func (x WorkerPool_Region) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WorkerPool_Region.Descriptor instead. func (WorkerPool_Region) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{34, 0} } // `WorkerPool` status type WorkerPool_Status int32 const ( // Status of the `WorkerPool` is unknown. WorkerPool_STATUS_UNSPECIFIED WorkerPool_Status = 0 // `WorkerPool` is being created. WorkerPool_CREATING WorkerPool_Status = 1 // `WorkerPool` is running. WorkerPool_RUNNING WorkerPool_Status = 2 // `WorkerPool` is being deleted: cancelling builds and draining workers. WorkerPool_DELETING WorkerPool_Status = 3 // `WorkerPool` is deleted. WorkerPool_DELETED WorkerPool_Status = 4 ) // Enum value maps for WorkerPool_Status. var ( WorkerPool_Status_name = map[int32]string{ 0: "STATUS_UNSPECIFIED", 1: "CREATING", 2: "RUNNING", 3: "DELETING", 4: "DELETED", } WorkerPool_Status_value = map[string]int32{ "STATUS_UNSPECIFIED": 0, "CREATING": 1, "RUNNING": 2, "DELETING": 3, "DELETED": 4, } ) func (x WorkerPool_Status) Enum() *WorkerPool_Status { p := new(WorkerPool_Status) *p = x return p } func (x WorkerPool_Status) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (WorkerPool_Status) Descriptor() protoreflect.EnumDescriptor { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[9].Descriptor() } func (WorkerPool_Status) Type() protoreflect.EnumType { return &file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes[9] } func (x WorkerPool_Status) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use WorkerPool_Status.Descriptor instead. func (WorkerPool_Status) EnumDescriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{34, 1} } // Specifies a build to retry. type RetryBuildRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. Build ID of the original build. Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *RetryBuildRequest) Reset() { *x = RetryBuildRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RetryBuildRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RetryBuildRequest) ProtoMessage() {} func (x *RetryBuildRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 RetryBuildRequest.ProtoReflect.Descriptor instead. func (*RetryBuildRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{0} } func (x *RetryBuildRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *RetryBuildRequest) GetId() string { if x != nil { return x.Id } return "" } // Specifies a build trigger to run and the source to use. type RunBuildTriggerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. ID of the trigger. TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` // Required. Source to build against this trigger. Source *RepoSource `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` } func (x *RunBuildTriggerRequest) Reset() { *x = RunBuildTriggerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RunBuildTriggerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RunBuildTriggerRequest) ProtoMessage() {} func (x *RunBuildTriggerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 RunBuildTriggerRequest.ProtoReflect.Descriptor instead. func (*RunBuildTriggerRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{1} } func (x *RunBuildTriggerRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *RunBuildTriggerRequest) GetTriggerId() string { if x != nil { return x.TriggerId } return "" } func (x *RunBuildTriggerRequest) GetSource() *RepoSource { if x != nil { return x.Source } return nil } // Location of the source in an archive file in Google Cloud Storage. type StorageSource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Google Cloud Storage bucket containing the source (see // [Bucket Name // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). Bucket string `protobuf:"bytes,1,opt,name=bucket,proto3" json:"bucket,omitempty"` // Google Cloud Storage object containing the source. // // This object must be a gzipped archive file (`.tar.gz`) containing source to // build. Object string `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` // Google Cloud Storage generation for the object. If the generation is // omitted, the latest generation will be used. Generation int64 `protobuf:"varint,3,opt,name=generation,proto3" json:"generation,omitempty"` } func (x *StorageSource) Reset() { *x = StorageSource{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StorageSource) String() string { return protoimpl.X.MessageStringOf(x) } func (*StorageSource) ProtoMessage() {} func (x *StorageSource) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 StorageSource.ProtoReflect.Descriptor instead. func (*StorageSource) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{2} } func (x *StorageSource) GetBucket() string { if x != nil { return x.Bucket } return "" } func (x *StorageSource) GetObject() string { if x != nil { return x.Object } return "" } func (x *StorageSource) GetGeneration() int64 { if x != nil { return x.Generation } return 0 } // Location of the source in a Google Cloud Source Repository. type RepoSource struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // ID of the project that owns the Cloud Source Repository. If omitted, the // project ID requesting the build is assumed. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. Name of the Cloud Source Repository. RepoName string `protobuf:"bytes,2,opt,name=repo_name,json=repoName,proto3" json:"repo_name,omitempty"` // A revision within the Cloud Source Repository must be specified in // one of these ways. // // Types that are assignable to Revision: // *RepoSource_BranchName // *RepoSource_TagName // *RepoSource_CommitSha Revision isRepoSource_Revision `protobuf_oneof:"revision"` // Directory, relative to the source root, in which to run the build. // // This must be a relative path. If a step's `dir` is specified and is an // absolute path, this value is ignored for that step's execution. Dir string `protobuf:"bytes,7,opt,name=dir,proto3" json:"dir,omitempty"` // Only trigger a build if the revision regex does NOT match the revision // regex. InvertRegex bool `protobuf:"varint,8,opt,name=invert_regex,json=invertRegex,proto3" json:"invert_regex,omitempty"` // Substitutions to use in a triggered build. // Should only be used with RunBuildTrigger Substitutions map[string]string `protobuf:"bytes,9,rep,name=substitutions,proto3" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *RepoSource) Reset() { *x = RepoSource{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RepoSource) String() string { return protoimpl.X.MessageStringOf(x) } func (*RepoSource) ProtoMessage() {} func (x *RepoSource) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 RepoSource.ProtoReflect.Descriptor instead. func (*RepoSource) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{3} } func (x *RepoSource) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *RepoSource) GetRepoName() string { if x != nil { return x.RepoName } return "" } func (m *RepoSource) GetRevision() isRepoSource_Revision { if m != nil { return m.Revision } return nil } func (x *RepoSource) GetBranchName() string { if x, ok := x.GetRevision().(*RepoSource_BranchName); ok { return x.BranchName } return "" } func (x *RepoSource) GetTagName() string { if x, ok := x.GetRevision().(*RepoSource_TagName); ok { return x.TagName } return "" } func (x *RepoSource) GetCommitSha() string { if x, ok := x.GetRevision().(*RepoSource_CommitSha); ok { return x.CommitSha } return "" } func (x *RepoSource) GetDir() string { if x != nil { return x.Dir } return "" } func (x *RepoSource) GetInvertRegex() bool { if x != nil { return x.InvertRegex } return false } func (x *RepoSource) GetSubstitutions() map[string]string { if x != nil { return x.Substitutions } return nil } type isRepoSource_Revision interface { isRepoSource_Revision() } type RepoSource_BranchName struct { // Regex matching branches to build. // // The syntax of the regular expressions accepted is the syntax accepted by // RE2 and described at https://github.com/google/re2/wiki/Syntax BranchName string `protobuf:"bytes,3,opt,name=branch_name,json=branchName,proto3,oneof"` } type RepoSource_TagName struct { // Regex matching tags to build. // // The syntax of the regular expressions accepted is the syntax accepted by // RE2 and described at https://github.com/google/re2/wiki/Syntax TagName string `protobuf:"bytes,4,opt,name=tag_name,json=tagName,proto3,oneof"` } type RepoSource_CommitSha struct { // Explicit commit SHA to build. CommitSha string `protobuf:"bytes,5,opt,name=commit_sha,json=commitSha,proto3,oneof"` } func (*RepoSource_BranchName) isRepoSource_Revision() {} func (*RepoSource_TagName) isRepoSource_Revision() {} func (*RepoSource_CommitSha) isRepoSource_Revision() {} // Location of the source in a supported storage service. type Source struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Location of source. // // Types that are assignable to Source: // *Source_StorageSource // *Source_RepoSource Source isSource_Source `protobuf_oneof:"source"` } func (x *Source) Reset() { *x = Source{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Source) String() string { return protoimpl.X.MessageStringOf(x) } func (*Source) ProtoMessage() {} func (x *Source) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Source.ProtoReflect.Descriptor instead. func (*Source) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{4} } func (m *Source) GetSource() isSource_Source { if m != nil { return m.Source } return nil } func (x *Source) GetStorageSource() *StorageSource { if x, ok := x.GetSource().(*Source_StorageSource); ok { return x.StorageSource } return nil } func (x *Source) GetRepoSource() *RepoSource { if x, ok := x.GetSource().(*Source_RepoSource); ok { return x.RepoSource } return nil } type isSource_Source interface { isSource_Source() } type Source_StorageSource struct { // If provided, get the source from this location in Google Cloud Storage. StorageSource *StorageSource `protobuf:"bytes,2,opt,name=storage_source,json=storageSource,proto3,oneof"` } type Source_RepoSource struct { // If provided, get the source from this location in a Cloud Source // Repository. RepoSource *RepoSource `protobuf:"bytes,3,opt,name=repo_source,json=repoSource,proto3,oneof"` } func (*Source_StorageSource) isSource_Source() {} func (*Source_RepoSource) isSource_Source() {} // An image built by the pipeline. type BuiltImage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name used to push the container image to Google Container Registry, as // presented to `docker push`. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Docker Registry 2.0 digest. Digest string `protobuf:"bytes,3,opt,name=digest,proto3" json:"digest,omitempty"` // Output only. Stores timing information for pushing the specified image. PushTiming *TimeSpan `protobuf:"bytes,4,opt,name=push_timing,json=pushTiming,proto3" json:"push_timing,omitempty"` } func (x *BuiltImage) Reset() { *x = BuiltImage{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuiltImage) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuiltImage) ProtoMessage() {} func (x *BuiltImage) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 BuiltImage.ProtoReflect.Descriptor instead. func (*BuiltImage) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{5} } func (x *BuiltImage) GetName() string { if x != nil { return x.Name } return "" } func (x *BuiltImage) GetDigest() string { if x != nil { return x.Digest } return "" } func (x *BuiltImage) GetPushTiming() *TimeSpan { if x != nil { return x.PushTiming } return nil } // A step in the build pipeline. type BuildStep struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the container image that will run this particular // build step. // // If the image is available in the host's Docker daemon's cache, it // will be run directly. If not, the host will attempt to pull the image // first, using the builder service account's credentials if necessary. // // The Docker daemon's cache will already have the latest versions of all of // the officially supported build steps // ([https://github.com/GoogleCloudPlatform/cloud-builders](https://github.com/GoogleCloudPlatform/cloud-builders)). // The Docker daemon will also have cached many of the layers for some popular // images, like "ubuntu", "debian", but they will be refreshed at the time you // attempt to use them. // // If you built an image in a previous build step, it will be stored in the // host's Docker daemon's cache and is available to use as the name for a // later build step. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // A list of environment variable definitions to be used when running a step. // // The elements are of the form "KEY=VALUE" for the environment variable "KEY" // being given the value "VALUE". Env []string `protobuf:"bytes,2,rep,name=env,proto3" json:"env,omitempty"` // A list of arguments that will be presented to the step when it is started. // // If the image used to run the step's container has an entrypoint, the `args` // are used as arguments to that entrypoint. If the image does not define // an entrypoint, the first element in args is used as the entrypoint, // and the remainder will be used as arguments. Args []string `protobuf:"bytes,3,rep,name=args,proto3" json:"args,omitempty"` // Working directory to use when running this step's container. // // If this value is a relative path, it is relative to the build's working // directory. If this value is absolute, it may be outside the build's working // directory, in which case the contents of the path may not be persisted // across build step executions, unless a `volume` for that path is specified. // // If the build specifies a `RepoSource` with `dir` and a step with a `dir`, // which specifies an absolute path, the `RepoSource` `dir` is ignored for // the step's execution. Dir string `protobuf:"bytes,4,opt,name=dir,proto3" json:"dir,omitempty"` // Unique identifier for this build step, used in `wait_for` to // reference this build step as a dependency. Id string `protobuf:"bytes,5,opt,name=id,proto3" json:"id,omitempty"` // The ID(s) of the step(s) that this build step depends on. // This build step will not start until all the build steps in `wait_for` // have completed successfully. If `wait_for` is empty, this build step will // start when all previous build steps in the `Build.Steps` list have // completed successfully. WaitFor []string `protobuf:"bytes,6,rep,name=wait_for,json=waitFor,proto3" json:"wait_for,omitempty"` // Entrypoint to be used instead of the build step image's default entrypoint. // If unset, the image's default entrypoint is used. Entrypoint string `protobuf:"bytes,7,opt,name=entrypoint,proto3" json:"entrypoint,omitempty"` // A list of environment variables which are encrypted using a Cloud Key // Management Service crypto key. These values must be specified in the // build's `Secret`. SecretEnv []string `protobuf:"bytes,8,rep,name=secret_env,json=secretEnv,proto3" json:"secret_env,omitempty"` // List of volumes to mount into the build step. // // Each volume is created as an empty volume prior to execution of the // build step. Upon completion of the build, volumes and their contents are // discarded. // // Using a named volume in only one step is not valid as it is indicative // of a build request with an incorrect configuration. Volumes []*Volume `protobuf:"bytes,9,rep,name=volumes,proto3" json:"volumes,omitempty"` // Output only. Stores timing information for executing this build step. Timing *TimeSpan `protobuf:"bytes,10,opt,name=timing,proto3" json:"timing,omitempty"` // Output only. Stores timing information for pulling this build step's // builder image only. PullTiming *TimeSpan `protobuf:"bytes,13,opt,name=pull_timing,json=pullTiming,proto3" json:"pull_timing,omitempty"` // Time limit for executing this build step. If not defined, the step has no // time limit and will be allowed to continue to run until either it completes // or the build itself times out. Timeout *duration.Duration `protobuf:"bytes,11,opt,name=timeout,proto3" json:"timeout,omitempty"` // Output only. Status of the build step. At this time, build step status is // only updated on build completion; step status is not updated in real-time // as the build progresses. Status Build_Status `protobuf:"varint,12,opt,name=status,proto3,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"` } func (x *BuildStep) Reset() { *x = BuildStep{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildStep) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildStep) ProtoMessage() {} func (x *BuildStep) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 BuildStep.ProtoReflect.Descriptor instead. func (*BuildStep) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{6} } func (x *BuildStep) GetName() string { if x != nil { return x.Name } return "" } func (x *BuildStep) GetEnv() []string { if x != nil { return x.Env } return nil } func (x *BuildStep) GetArgs() []string { if x != nil { return x.Args } return nil } func (x *BuildStep) GetDir() string { if x != nil { return x.Dir } return "" } func (x *BuildStep) GetId() string { if x != nil { return x.Id } return "" } func (x *BuildStep) GetWaitFor() []string { if x != nil { return x.WaitFor } return nil } func (x *BuildStep) GetEntrypoint() string { if x != nil { return x.Entrypoint } return "" } func (x *BuildStep) GetSecretEnv() []string { if x != nil { return x.SecretEnv } return nil } func (x *BuildStep) GetVolumes() []*Volume { if x != nil { return x.Volumes } return nil } func (x *BuildStep) GetTiming() *TimeSpan { if x != nil { return x.Timing } return nil } func (x *BuildStep) GetPullTiming() *TimeSpan { if x != nil { return x.PullTiming } return nil } func (x *BuildStep) GetTimeout() *duration.Duration { if x != nil { return x.Timeout } return nil } func (x *BuildStep) GetStatus() Build_Status { if x != nil { return x.Status } return Build_STATUS_UNKNOWN } // Volume describes a Docker container volume which is mounted into build steps // in order to persist files across build step execution. type Volume struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Name of the volume to mount. // // Volume names must be unique per build step and must be valid names for // Docker volumes. Each named volume must be used by at least two build steps. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Path at which to mount the volume. // // Paths must be absolute and cannot conflict with other volume paths on the // same build step or with certain reserved volume paths. Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` } func (x *Volume) Reset() { *x = Volume{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Volume) String() string { return protoimpl.X.MessageStringOf(x) } func (*Volume) ProtoMessage() {} func (x *Volume) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Volume.ProtoReflect.Descriptor instead. func (*Volume) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{7} } func (x *Volume) GetName() string { if x != nil { return x.Name } return "" } func (x *Volume) GetPath() string { if x != nil { return x.Path } return "" } // Artifacts created by the build pipeline. type Results struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Container images that were built as a part of the build. Images []*BuiltImage `protobuf:"bytes,2,rep,name=images,proto3" json:"images,omitempty"` // List of build step digests, in the order corresponding to build step // indices. BuildStepImages []string `protobuf:"bytes,3,rep,name=build_step_images,json=buildStepImages,proto3" json:"build_step_images,omitempty"` // Path to the artifact manifest. Only populated when artifacts are uploaded. ArtifactManifest string `protobuf:"bytes,4,opt,name=artifact_manifest,json=artifactManifest,proto3" json:"artifact_manifest,omitempty"` // Number of artifacts uploaded. Only populated when artifacts are uploaded. NumArtifacts int64 `protobuf:"varint,5,opt,name=num_artifacts,json=numArtifacts,proto3" json:"num_artifacts,omitempty"` // List of build step outputs, produced by builder images, in the order // corresponding to build step indices. // // [Cloud Builders](https://cloud.google.com/cloud-build/docs/cloud-builders) // can produce this output by writing to `$BUILDER_OUTPUT/output`. // Only the first 4KB of data is stored. BuildStepOutputs [][]byte `protobuf:"bytes,6,rep,name=build_step_outputs,json=buildStepOutputs,proto3" json:"build_step_outputs,omitempty"` // Time to push all non-container artifacts. ArtifactTiming *TimeSpan `protobuf:"bytes,7,opt,name=artifact_timing,json=artifactTiming,proto3" json:"artifact_timing,omitempty"` } func (x *Results) Reset() { *x = Results{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Results) String() string { return protoimpl.X.MessageStringOf(x) } func (*Results) ProtoMessage() {} func (x *Results) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Results.ProtoReflect.Descriptor instead. func (*Results) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{8} } func (x *Results) GetImages() []*BuiltImage { if x != nil { return x.Images } return nil } func (x *Results) GetBuildStepImages() []string { if x != nil { return x.BuildStepImages } return nil } func (x *Results) GetArtifactManifest() string { if x != nil { return x.ArtifactManifest } return "" } func (x *Results) GetNumArtifacts() int64 { if x != nil { return x.NumArtifacts } return 0 } func (x *Results) GetBuildStepOutputs() [][]byte { if x != nil { return x.BuildStepOutputs } return nil } func (x *Results) GetArtifactTiming() *TimeSpan { if x != nil { return x.ArtifactTiming } return nil } // An artifact that was uploaded during a build. This // is a single record in the artifact manifest JSON file. type ArtifactResult struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The path of an artifact in a Google Cloud Storage bucket, with the // generation number. For example, // `gs://mybucket/path/to/output.jar#generation`. Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` // The file hash of the artifact. FileHash []*FileHashes `protobuf:"bytes,2,rep,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"` } func (x *ArtifactResult) Reset() { *x = ArtifactResult{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ArtifactResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*ArtifactResult) ProtoMessage() {} func (x *ArtifactResult) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 ArtifactResult.ProtoReflect.Descriptor instead. func (*ArtifactResult) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{9} } func (x *ArtifactResult) GetLocation() string { if x != nil { return x.Location } return "" } func (x *ArtifactResult) GetFileHash() []*FileHashes { if x != nil { return x.FileHash } return nil } // A build resource in the Cloud Build API. // // At a high level, a `Build` describes where to find source code, how to build // it (for example, the builder image to run on the source), and where to store // the built artifacts. // // Fields can include the following variables, which will be expanded when the // build is created: // // - $PROJECT_ID: the project ID of the build. // - $BUILD_ID: the autogenerated ID of the build. // - $REPO_NAME: the source repository name specified by RepoSource. // - $BRANCH_NAME: the branch name specified by RepoSource. // - $TAG_NAME: the tag name specified by RepoSource. // - $REVISION_ID or $COMMIT_SHA: the commit SHA specified by RepoSource or // resolved from the specified branch or tag. // - $SHORT_SHA: first 7 characters of $REVISION_ID or $COMMIT_SHA. type Build struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Unique identifier of the build. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Output only. ID of the project. ProjectId string `protobuf:"bytes,16,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Output only. Status of the build. Status Build_Status `protobuf:"varint,2,opt,name=status,proto3,enum=google.devtools.cloudbuild.v1.Build_Status" json:"status,omitempty"` // Output only. Customer-readable message about the current status. StatusDetail string `protobuf:"bytes,24,opt,name=status_detail,json=statusDetail,proto3" json:"status_detail,omitempty"` // The location of the source files to build. Source *Source `protobuf:"bytes,3,opt,name=source,proto3" json:"source,omitempty"` // Required. The operations to be performed on the workspace. Steps []*BuildStep `protobuf:"bytes,11,rep,name=steps,proto3" json:"steps,omitempty"` // Output only. Results of the build. Results *Results `protobuf:"bytes,10,opt,name=results,proto3" json:"results,omitempty"` // Output only. Time at which the request to create the build was received. CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time at which execution of the build was started. StartTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // Output only. Time at which execution of the build was finished. // // The difference between finish_time and start_time is the duration of the // build's execution. FinishTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=finish_time,json=finishTime,proto3" json:"finish_time,omitempty"` // Amount of time that this build should be allowed to run, to second // granularity. If this amount of time elapses, work on the build will cease // and the build status will be `TIMEOUT`. // // Default time is ten minutes. Timeout *duration.Duration `protobuf:"bytes,12,opt,name=timeout,proto3" json:"timeout,omitempty"` // A list of images to be pushed upon the successful completion of all build // steps. // // The images are pushed using the builder service account's credentials. // // The digests of the pushed images will be stored in the `Build` resource's // results field. // // If any of the images fail to be pushed, the build status is marked // `FAILURE`. Images []string `protobuf:"bytes,13,rep,name=images,proto3" json:"images,omitempty"` // TTL in queue for this build. If provided and the build is enqueued longer // than this value, the build will expire and the build status will be // `EXPIRED`. // // The TTL starts ticking from create_time. QueueTtl *duration.Duration `protobuf:"bytes,40,opt,name=queue_ttl,json=queueTtl,proto3" json:"queue_ttl,omitempty"` // Artifacts produced by the build that should be uploaded upon // successful completion of all build steps. Artifacts *Artifacts `protobuf:"bytes,37,opt,name=artifacts,proto3" json:"artifacts,omitempty"` // Google Cloud Storage bucket where logs should be written (see // [Bucket Name // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). // Logs file names will be of the format `${logs_bucket}/log-${build_id}.txt`. LogsBucket string `protobuf:"bytes,19,opt,name=logs_bucket,json=logsBucket,proto3" json:"logs_bucket,omitempty"` // Output only. A permanent fixed identifier for source. SourceProvenance *SourceProvenance `protobuf:"bytes,21,opt,name=source_provenance,json=sourceProvenance,proto3" json:"source_provenance,omitempty"` // Output only. The ID of the `BuildTrigger` that triggered this build, if it // was triggered automatically. BuildTriggerId string `protobuf:"bytes,22,opt,name=build_trigger_id,json=buildTriggerId,proto3" json:"build_trigger_id,omitempty"` // Special options for this build. Options *BuildOptions `protobuf:"bytes,23,opt,name=options,proto3" json:"options,omitempty"` // Output only. URL to logs for this build in Google Cloud Console. LogUrl string `protobuf:"bytes,25,opt,name=log_url,json=logUrl,proto3" json:"log_url,omitempty"` // Substitutions data for `Build` resource. Substitutions map[string]string `protobuf:"bytes,29,rep,name=substitutions,proto3" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Tags for annotation of a `Build`. These are not docker tags. Tags []string `protobuf:"bytes,31,rep,name=tags,proto3" json:"tags,omitempty"` // Secrets to decrypt using Cloud Key Management Service. Secrets []*Secret `protobuf:"bytes,32,rep,name=secrets,proto3" json:"secrets,omitempty"` // Output only. Stores timing information for phases of the build. Valid keys // are: // // * BUILD: time to execute all build steps // * PUSH: time to push all specified images. // * FETCHSOURCE: time to fetch source. // // If the build does not specify source or images, // these keys will not be included. Timing map[string]*TimeSpan `protobuf:"bytes,33,rep,name=timing,proto3" json:"timing,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Build) Reset() { *x = Build{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Build) String() string { return protoimpl.X.MessageStringOf(x) } func (*Build) ProtoMessage() {} func (x *Build) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Build.ProtoReflect.Descriptor instead. func (*Build) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{10} } func (x *Build) GetId() string { if x != nil { return x.Id } return "" } func (x *Build) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *Build) GetStatus() Build_Status { if x != nil { return x.Status } return Build_STATUS_UNKNOWN } func (x *Build) GetStatusDetail() string { if x != nil { return x.StatusDetail } return "" } func (x *Build) GetSource() *Source { if x != nil { return x.Source } return nil } func (x *Build) GetSteps() []*BuildStep { if x != nil { return x.Steps } return nil } func (x *Build) GetResults() *Results { if x != nil { return x.Results } return nil } func (x *Build) GetCreateTime() *timestamp.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *Build) GetStartTime() *timestamp.Timestamp { if x != nil { return x.StartTime } return nil } func (x *Build) GetFinishTime() *timestamp.Timestamp { if x != nil { return x.FinishTime } return nil } func (x *Build) GetTimeout() *duration.Duration { if x != nil { return x.Timeout } return nil } func (x *Build) GetImages() []string { if x != nil { return x.Images } return nil } func (x *Build) GetQueueTtl() *duration.Duration { if x != nil { return x.QueueTtl } return nil } func (x *Build) GetArtifacts() *Artifacts { if x != nil { return x.Artifacts } return nil } func (x *Build) GetLogsBucket() string { if x != nil { return x.LogsBucket } return "" } func (x *Build) GetSourceProvenance() *SourceProvenance { if x != nil { return x.SourceProvenance } return nil } func (x *Build) GetBuildTriggerId() string { if x != nil { return x.BuildTriggerId } return "" } func (x *Build) GetOptions() *BuildOptions { if x != nil { return x.Options } return nil } func (x *Build) GetLogUrl() string { if x != nil { return x.LogUrl } return "" } func (x *Build) GetSubstitutions() map[string]string { if x != nil { return x.Substitutions } return nil } func (x *Build) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *Build) GetSecrets() []*Secret { if x != nil { return x.Secrets } return nil } func (x *Build) GetTiming() map[string]*TimeSpan { if x != nil { return x.Timing } return nil } // Artifacts produced by a build that should be uploaded upon // successful completion of all build steps. type Artifacts struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A list of images to be pushed upon the successful completion of all build // steps. // // The images will be pushed using the builder service account's credentials. // // The digests of the pushed images will be stored in the Build resource's // results field. // // If any of the images fail to be pushed, the build is marked FAILURE. Images []string `protobuf:"bytes,1,rep,name=images,proto3" json:"images,omitempty"` // A list of objects to be uploaded to Cloud Storage upon successful // completion of all build steps. // // Files in the workspace matching specified paths globs will be uploaded to // the specified Cloud Storage location using the builder service account's // credentials. // // The location and generation of the uploaded objects will be stored in the // Build resource's results field. // // If any objects fail to be pushed, the build is marked FAILURE. Objects *Artifacts_ArtifactObjects `protobuf:"bytes,2,opt,name=objects,proto3" json:"objects,omitempty"` } func (x *Artifacts) Reset() { *x = Artifacts{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Artifacts) String() string { return protoimpl.X.MessageStringOf(x) } func (*Artifacts) ProtoMessage() {} func (x *Artifacts) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Artifacts.ProtoReflect.Descriptor instead. func (*Artifacts) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{11} } func (x *Artifacts) GetImages() []string { if x != nil { return x.Images } return nil } func (x *Artifacts) GetObjects() *Artifacts_ArtifactObjects { if x != nil { return x.Objects } return nil } // Start and end times for a build execution phase. type TimeSpan struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Start of time span. StartTime *timestamp.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // End of time span. EndTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` } func (x *TimeSpan) Reset() { *x = TimeSpan{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *TimeSpan) String() string { return protoimpl.X.MessageStringOf(x) } func (*TimeSpan) ProtoMessage() {} func (x *TimeSpan) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 TimeSpan.ProtoReflect.Descriptor instead. func (*TimeSpan) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{12} } func (x *TimeSpan) GetStartTime() *timestamp.Timestamp { if x != nil { return x.StartTime } return nil } func (x *TimeSpan) GetEndTime() *timestamp.Timestamp { if x != nil { return x.EndTime } return nil } // Metadata for build operations. type BuildOperationMetadata struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The build that the operation is tracking. Build *Build `protobuf:"bytes,1,opt,name=build,proto3" json:"build,omitempty"` } func (x *BuildOperationMetadata) Reset() { *x = BuildOperationMetadata{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildOperationMetadata) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildOperationMetadata) ProtoMessage() {} func (x *BuildOperationMetadata) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 BuildOperationMetadata.ProtoReflect.Descriptor instead. func (*BuildOperationMetadata) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{13} } func (x *BuildOperationMetadata) GetBuild() *Build { if x != nil { return x.Build } return nil } // Provenance of the source. Ways to find the original source, or verify that // some source was used for this build. type SourceProvenance struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // A copy of the build's `source.storage_source`, if exists, with any // generations resolved. ResolvedStorageSource *StorageSource `protobuf:"bytes,3,opt,name=resolved_storage_source,json=resolvedStorageSource,proto3" json:"resolved_storage_source,omitempty"` // A copy of the build's `source.repo_source`, if exists, with any // revisions resolved. ResolvedRepoSource *RepoSource `protobuf:"bytes,6,opt,name=resolved_repo_source,json=resolvedRepoSource,proto3" json:"resolved_repo_source,omitempty"` // Output only. Hash(es) of the build source, which can be used to verify that // the original source integrity was maintained in the build. Note that // `FileHashes` will only be populated if `BuildOptions` has requested a // `SourceProvenanceHash`. // // The keys to this map are file paths used as build source and the values // contain the hash values for those files. // // If the build source came in a single package such as a gzipped tarfile // (`.tar.gz`), the `FileHash` will be for the single path to that file. FileHashes map[string]*FileHashes `protobuf:"bytes,4,rep,name=file_hashes,json=fileHashes,proto3" json:"file_hashes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *SourceProvenance) Reset() { *x = SourceProvenance{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SourceProvenance) String() string { return protoimpl.X.MessageStringOf(x) } func (*SourceProvenance) ProtoMessage() {} func (x *SourceProvenance) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 SourceProvenance.ProtoReflect.Descriptor instead. func (*SourceProvenance) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{14} } func (x *SourceProvenance) GetResolvedStorageSource() *StorageSource { if x != nil { return x.ResolvedStorageSource } return nil } func (x *SourceProvenance) GetResolvedRepoSource() *RepoSource { if x != nil { return x.ResolvedRepoSource } return nil } func (x *SourceProvenance) GetFileHashes() map[string]*FileHashes { if x != nil { return x.FileHashes } return nil } // Container message for hashes of byte content of files, used in // SourceProvenance messages to verify integrity of source input to the build. type FileHashes struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Collection of file hashes. FileHash []*Hash `protobuf:"bytes,1,rep,name=file_hash,json=fileHash,proto3" json:"file_hash,omitempty"` } func (x *FileHashes) Reset() { *x = FileHashes{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FileHashes) String() string { return protoimpl.X.MessageStringOf(x) } func (*FileHashes) ProtoMessage() {} func (x *FileHashes) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 FileHashes.ProtoReflect.Descriptor instead. func (*FileHashes) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{15} } func (x *FileHashes) GetFileHash() []*Hash { if x != nil { return x.FileHash } return nil } // Container message for hash values. type Hash struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The type of hash that was performed. Type Hash_HashType `protobuf:"varint,1,opt,name=type,proto3,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"type,omitempty"` // The hash value. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } func (x *Hash) Reset() { *x = Hash{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Hash) String() string { return protoimpl.X.MessageStringOf(x) } func (*Hash) ProtoMessage() {} func (x *Hash) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Hash.ProtoReflect.Descriptor instead. func (*Hash) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{16} } func (x *Hash) GetType() Hash_HashType { if x != nil { return x.Type } return Hash_NONE } func (x *Hash) GetValue() []byte { if x != nil { return x.Value } return nil } // Pairs a set of secret environment variables containing encrypted // values with the Cloud KMS key to use to decrypt the value. type Secret struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Cloud KMS key name to use to decrypt these envs. KmsKeyName string `protobuf:"bytes,1,opt,name=kms_key_name,json=kmsKeyName,proto3" json:"kms_key_name,omitempty"` // Map of environment variable name to its encrypted value. // // Secret environment variables must be unique across all of a build's // secrets, and must be used by at least one build step. Values can be at most // 64 KB in size. There can be at most 100 secret values across all of a // build's secrets. SecretEnv map[string][]byte `protobuf:"bytes,3,rep,name=secret_env,json=secretEnv,proto3" json:"secret_env,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` } func (x *Secret) Reset() { *x = Secret{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Secret) String() string { return protoimpl.X.MessageStringOf(x) } func (*Secret) ProtoMessage() {} func (x *Secret) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 Secret.ProtoReflect.Descriptor instead. func (*Secret) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{17} } func (x *Secret) GetKmsKeyName() string { if x != nil { return x.KmsKeyName } return "" } func (x *Secret) GetSecretEnv() map[string][]byte { if x != nil { return x.SecretEnv } return nil } // Request to create a new build. type CreateBuildRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. Build resource to create. Build *Build `protobuf:"bytes,2,opt,name=build,proto3" json:"build,omitempty"` } func (x *CreateBuildRequest) Reset() { *x = CreateBuildRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBuildRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBuildRequest) ProtoMessage() {} func (x *CreateBuildRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 CreateBuildRequest.ProtoReflect.Descriptor instead. func (*CreateBuildRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{18} } func (x *CreateBuildRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *CreateBuildRequest) GetBuild() *Build { if x != nil { return x.Build } return nil } // Request to get a build. type GetBuildRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. ID of the build. Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *GetBuildRequest) Reset() { *x = GetBuildRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetBuildRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetBuildRequest) ProtoMessage() {} func (x *GetBuildRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 GetBuildRequest.ProtoReflect.Descriptor instead. func (*GetBuildRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{19} } func (x *GetBuildRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *GetBuildRequest) GetId() string { if x != nil { return x.Id } return "" } // Request to list builds. type ListBuildsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Number of results to return in the list. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // Token to provide to skip to a particular spot in the list. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // The raw filter text to constrain the results. Filter string `protobuf:"bytes,8,opt,name=filter,proto3" json:"filter,omitempty"` } func (x *ListBuildsRequest) Reset() { *x = ListBuildsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBuildsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBuildsRequest) ProtoMessage() {} func (x *ListBuildsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 ListBuildsRequest.ProtoReflect.Descriptor instead. func (*ListBuildsRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{20} } func (x *ListBuildsRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *ListBuildsRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListBuildsRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } func (x *ListBuildsRequest) GetFilter() string { if x != nil { return x.Filter } return "" } // Response including listed builds. type ListBuildsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Builds will be sorted by `create_time`, descending. Builds []*Build `protobuf:"bytes,1,rep,name=builds,proto3" json:"builds,omitempty"` // Token to receive the next page of results. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ListBuildsResponse) Reset() { *x = ListBuildsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBuildsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBuildsResponse) ProtoMessage() {} func (x *ListBuildsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 ListBuildsResponse.ProtoReflect.Descriptor instead. func (*ListBuildsResponse) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{21} } func (x *ListBuildsResponse) GetBuilds() []*Build { if x != nil { return x.Builds } return nil } func (x *ListBuildsResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } // Request to cancel an ongoing build. type CancelBuildRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. ID of the build. Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` } func (x *CancelBuildRequest) Reset() { *x = CancelBuildRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CancelBuildRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CancelBuildRequest) ProtoMessage() {} func (x *CancelBuildRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 CancelBuildRequest.ProtoReflect.Descriptor instead. func (*CancelBuildRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{22} } func (x *CancelBuildRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *CancelBuildRequest) GetId() string { if x != nil { return x.Id } return "" } // Configuration for an automated build in response to source repository // changes. type BuildTrigger struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Output only. Unique identifier of the trigger. Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` // Human-readable description of this trigger. Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"` // User-assigned name of the trigger. Must be unique within the project. // Trigger names must meet the following requirements: // // + They must contain only alphanumeric characters and dashes. // + They can be 1-64 characters long. // + They must begin and end with an alphanumeric character. Name string `protobuf:"bytes,21,opt,name=name,proto3" json:"name,omitempty"` // Tags for annotation of a `BuildTrigger` Tags []string `protobuf:"bytes,19,rep,name=tags,proto3" json:"tags,omitempty"` // Template describing the types of source changes to trigger a build. // // Branch and tag names in trigger templates are interpreted as regular // expressions. Any branch or tag change that matches that regular expression // will trigger a build. // // Mutually exclusive with `github`. TriggerTemplate *RepoSource `protobuf:"bytes,7,opt,name=trigger_template,json=triggerTemplate,proto3" json:"trigger_template,omitempty"` // GitHubEventsConfig describes the configuration of a trigger that creates // a build whenever a GitHub event is received. // // Mutually exclusive with `trigger_template`. Github *GitHubEventsConfig `protobuf:"bytes,13,opt,name=github,proto3" json:"github,omitempty"` // Template describing the Build request to make when the trigger is matched. // // Types that are assignable to BuildTemplate: // *BuildTrigger_Build // *BuildTrigger_Filename BuildTemplate isBuildTrigger_BuildTemplate `protobuf_oneof:"build_template"` // Output only. Time when the trigger was created. CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // If true, the trigger will never result in a build. Disabled bool `protobuf:"varint,9,opt,name=disabled,proto3" json:"disabled,omitempty"` // Substitutions for Build resource. The keys must match the following // regular expression: `^_[A-Z0-9_]+$`.The keys cannot conflict with the // keys in bindings. Substitutions map[string]string `protobuf:"bytes,11,rep,name=substitutions,proto3" json:"substitutions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // ignored_files and included_files are file glob matches using // https://golang.org/pkg/path/filepath/#Match extended with support for "**". // // If ignored_files and changed files are both empty, then they are // not used to determine whether or not to trigger a build. // // If ignored_files is not empty, then we ignore any files that match // any of the ignored_file globs. If the change has no files that are // outside of the ignored_files globs, then we do not trigger a build. IgnoredFiles []string `protobuf:"bytes,15,rep,name=ignored_files,json=ignoredFiles,proto3" json:"ignored_files,omitempty"` // If any of the files altered in the commit pass the ignored_files // filter and included_files is empty, then as far as this filter is // concerned, we should trigger the build. // // If any of the files altered in the commit pass the ignored_files // filter and included_files is not empty, then we make sure that at // least one of those files matches a included_files glob. If not, // then we do not trigger a build. IncludedFiles []string `protobuf:"bytes,16,rep,name=included_files,json=includedFiles,proto3" json:"included_files,omitempty"` } func (x *BuildTrigger) Reset() { *x = BuildTrigger{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildTrigger) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildTrigger) ProtoMessage() {} func (x *BuildTrigger) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 BuildTrigger.ProtoReflect.Descriptor instead. func (*BuildTrigger) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{23} } func (x *BuildTrigger) GetId() string { if x != nil { return x.Id } return "" } func (x *BuildTrigger) GetDescription() string { if x != nil { return x.Description } return "" } func (x *BuildTrigger) GetName() string { if x != nil { return x.Name } return "" } func (x *BuildTrigger) GetTags() []string { if x != nil { return x.Tags } return nil } func (x *BuildTrigger) GetTriggerTemplate() *RepoSource { if x != nil { return x.TriggerTemplate } return nil } func (x *BuildTrigger) GetGithub() *GitHubEventsConfig { if x != nil { return x.Github } return nil } func (m *BuildTrigger) GetBuildTemplate() isBuildTrigger_BuildTemplate { if m != nil { return m.BuildTemplate } return nil } func (x *BuildTrigger) GetBuild() *Build { if x, ok := x.GetBuildTemplate().(*BuildTrigger_Build); ok { return x.Build } return nil } func (x *BuildTrigger) GetFilename() string { if x, ok := x.GetBuildTemplate().(*BuildTrigger_Filename); ok { return x.Filename } return "" } func (x *BuildTrigger) GetCreateTime() *timestamp.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *BuildTrigger) GetDisabled() bool { if x != nil { return x.Disabled } return false } func (x *BuildTrigger) GetSubstitutions() map[string]string { if x != nil { return x.Substitutions } return nil } func (x *BuildTrigger) GetIgnoredFiles() []string { if x != nil { return x.IgnoredFiles } return nil } func (x *BuildTrigger) GetIncludedFiles() []string { if x != nil { return x.IncludedFiles } return nil } type isBuildTrigger_BuildTemplate interface { isBuildTrigger_BuildTemplate() } type BuildTrigger_Build struct { // Contents of the build template. Build *Build `protobuf:"bytes,4,opt,name=build,proto3,oneof"` } type BuildTrigger_Filename struct { // Path, from the source root, to a file whose contents is used for the // template. Filename string `protobuf:"bytes,8,opt,name=filename,proto3,oneof"` } func (*BuildTrigger_Build) isBuildTrigger_BuildTemplate() {} func (*BuildTrigger_Filename) isBuildTrigger_BuildTemplate() {} // GitHubEventsConfig describes the configuration of a trigger that creates a // build whenever a GitHub event is received. // // This message is experimental. type GitHubEventsConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The installationID that emits the GitHub event. // // Deprecated: Do not use. InstallationId int64 `protobuf:"varint,1,opt,name=installation_id,json=installationId,proto3" json:"installation_id,omitempty"` // Owner of the repository. For example: The owner for // https://github.com/googlecloudplatform/cloud-builders is // "googlecloudplatform". Owner string `protobuf:"bytes,6,opt,name=owner,proto3" json:"owner,omitempty"` // Name of the repository. For example: The name for // https://github.com/googlecloudplatform/cloud-builders is "cloud-builders". Name string `protobuf:"bytes,7,opt,name=name,proto3" json:"name,omitempty"` // Filter describing the types of events to trigger a build. // Currently supported event types: push, pull_request. // // Types that are assignable to Event: // *GitHubEventsConfig_PullRequest // *GitHubEventsConfig_Push Event isGitHubEventsConfig_Event `protobuf_oneof:"event"` } func (x *GitHubEventsConfig) Reset() { *x = GitHubEventsConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GitHubEventsConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*GitHubEventsConfig) ProtoMessage() {} func (x *GitHubEventsConfig) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 GitHubEventsConfig.ProtoReflect.Descriptor instead. func (*GitHubEventsConfig) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{24} } // Deprecated: Do not use. func (x *GitHubEventsConfig) GetInstallationId() int64 { if x != nil { return x.InstallationId } return 0 } func (x *GitHubEventsConfig) GetOwner() string { if x != nil { return x.Owner } return "" } func (x *GitHubEventsConfig) GetName() string { if x != nil { return x.Name } return "" } func (m *GitHubEventsConfig) GetEvent() isGitHubEventsConfig_Event { if m != nil { return m.Event } return nil } func (x *GitHubEventsConfig) GetPullRequest() *PullRequestFilter { if x, ok := x.GetEvent().(*GitHubEventsConfig_PullRequest); ok { return x.PullRequest } return nil } func (x *GitHubEventsConfig) GetPush() *PushFilter { if x, ok := x.GetEvent().(*GitHubEventsConfig_Push); ok { return x.Push } return nil } type isGitHubEventsConfig_Event interface { isGitHubEventsConfig_Event() } type GitHubEventsConfig_PullRequest struct { // filter to match changes in pull requests. PullRequest *PullRequestFilter `protobuf:"bytes,4,opt,name=pull_request,json=pullRequest,proto3,oneof"` } type GitHubEventsConfig_Push struct { // filter to match changes in refs like branches, tags. Push *PushFilter `protobuf:"bytes,5,opt,name=push,proto3,oneof"` } func (*GitHubEventsConfig_PullRequest) isGitHubEventsConfig_Event() {} func (*GitHubEventsConfig_Push) isGitHubEventsConfig_Event() {} // PullRequestFilter contains filter properties for matching GitHub Pull // Requests. type PullRequestFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Target refs to match. // A target ref is the git reference where the pull request will be applied. // // Types that are assignable to GitRef: // *PullRequestFilter_Branch GitRef isPullRequestFilter_GitRef `protobuf_oneof:"git_ref"` // Whether to block builds on a "/gcbrun" comment from a repository admin or // collaborator. CommentControl PullRequestFilter_CommentControl `protobuf:"varint,5,opt,name=comment_control,json=commentControl,proto3,enum=google.devtools.cloudbuild.v1.PullRequestFilter_CommentControl" json:"comment_control,omitempty"` // If true, branches that do NOT match the git_ref will trigger a build. InvertRegex bool `protobuf:"varint,6,opt,name=invert_regex,json=invertRegex,proto3" json:"invert_regex,omitempty"` } func (x *PullRequestFilter) Reset() { *x = PullRequestFilter{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PullRequestFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*PullRequestFilter) ProtoMessage() {} func (x *PullRequestFilter) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 PullRequestFilter.ProtoReflect.Descriptor instead. func (*PullRequestFilter) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{25} } func (m *PullRequestFilter) GetGitRef() isPullRequestFilter_GitRef { if m != nil { return m.GitRef } return nil } func (x *PullRequestFilter) GetBranch() string { if x, ok := x.GetGitRef().(*PullRequestFilter_Branch); ok { return x.Branch } return "" } func (x *PullRequestFilter) GetCommentControl() PullRequestFilter_CommentControl { if x != nil { return x.CommentControl } return PullRequestFilter_COMMENTS_DISABLED } func (x *PullRequestFilter) GetInvertRegex() bool { if x != nil { return x.InvertRegex } return false } type isPullRequestFilter_GitRef interface { isPullRequestFilter_GitRef() } type PullRequestFilter_Branch struct { // Regex of branches to match. // // The syntax of the regular expressions accepted is the syntax accepted by // RE2 and described at https://github.com/google/re2/wiki/Syntax Branch string `protobuf:"bytes,2,opt,name=branch,proto3,oneof"` } func (*PullRequestFilter_Branch) isPullRequestFilter_GitRef() {} // Push contains filter properties for matching GitHub git pushes. type PushFilter struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Modified refs to match. // A modified refs are the refs modified by a git push operation. // // Types that are assignable to GitRef: // *PushFilter_Branch // *PushFilter_Tag GitRef isPushFilter_GitRef `protobuf_oneof:"git_ref"` // When true, only trigger a build if the revision regex does NOT match the // git_ref regex. InvertRegex bool `protobuf:"varint,4,opt,name=invert_regex,json=invertRegex,proto3" json:"invert_regex,omitempty"` } func (x *PushFilter) Reset() { *x = PushFilter{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PushFilter) String() string { return protoimpl.X.MessageStringOf(x) } func (*PushFilter) ProtoMessage() {} func (x *PushFilter) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 PushFilter.ProtoReflect.Descriptor instead. func (*PushFilter) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{26} } func (m *PushFilter) GetGitRef() isPushFilter_GitRef { if m != nil { return m.GitRef } return nil } func (x *PushFilter) GetBranch() string { if x, ok := x.GetGitRef().(*PushFilter_Branch); ok { return x.Branch } return "" } func (x *PushFilter) GetTag() string { if x, ok := x.GetGitRef().(*PushFilter_Tag); ok { return x.Tag } return "" } func (x *PushFilter) GetInvertRegex() bool { if x != nil { return x.InvertRegex } return false } type isPushFilter_GitRef interface { isPushFilter_GitRef() } type PushFilter_Branch struct { // Regexes matching branches to build. // // The syntax of the regular expressions accepted is the syntax accepted by // RE2 and described at https://github.com/google/re2/wiki/Syntax Branch string `protobuf:"bytes,2,opt,name=branch,proto3,oneof"` } type PushFilter_Tag struct { // Regexes matching tags to build. // // The syntax of the regular expressions accepted is the syntax accepted by // RE2 and described at https://github.com/google/re2/wiki/Syntax Tag string `protobuf:"bytes,3,opt,name=tag,proto3,oneof"` } func (*PushFilter_Branch) isPushFilter_GitRef() {} func (*PushFilter_Tag) isPushFilter_GitRef() {} // Request to create a new `BuildTrigger`. type CreateBuildTriggerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project for which to configure automatic builds. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. `BuildTrigger` to create. Trigger *BuildTrigger `protobuf:"bytes,2,opt,name=trigger,proto3" json:"trigger,omitempty"` } func (x *CreateBuildTriggerRequest) Reset() { *x = CreateBuildTriggerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBuildTriggerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBuildTriggerRequest) ProtoMessage() {} func (x *CreateBuildTriggerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 CreateBuildTriggerRequest.ProtoReflect.Descriptor instead. func (*CreateBuildTriggerRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{27} } func (x *CreateBuildTriggerRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *CreateBuildTriggerRequest) GetTrigger() *BuildTrigger { if x != nil { return x.Trigger } return nil } // Returns the `BuildTrigger` with the specified ID. type GetBuildTriggerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project that owns the trigger. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. Identifier (`id` or `name`) of the `BuildTrigger` to get. TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` } func (x *GetBuildTriggerRequest) Reset() { *x = GetBuildTriggerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetBuildTriggerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetBuildTriggerRequest) ProtoMessage() {} func (x *GetBuildTriggerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 GetBuildTriggerRequest.ProtoReflect.Descriptor instead. func (*GetBuildTriggerRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{28} } func (x *GetBuildTriggerRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *GetBuildTriggerRequest) GetTriggerId() string { if x != nil { return x.TriggerId } return "" } // Request to list existing `BuildTriggers`. type ListBuildTriggersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project for which to list BuildTriggers. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Number of results to return in the list. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // Token to provide to skip to a particular spot in the list. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` } func (x *ListBuildTriggersRequest) Reset() { *x = ListBuildTriggersRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBuildTriggersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBuildTriggersRequest) ProtoMessage() {} func (x *ListBuildTriggersRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 ListBuildTriggersRequest.ProtoReflect.Descriptor instead. func (*ListBuildTriggersRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{29} } func (x *ListBuildTriggersRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *ListBuildTriggersRequest) GetPageSize() int32 { if x != nil { return x.PageSize } return 0 } func (x *ListBuildTriggersRequest) GetPageToken() string { if x != nil { return x.PageToken } return "" } // Response containing existing `BuildTriggers`. type ListBuildTriggersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // `BuildTriggers` for the project, sorted by `create_time` descending. Triggers []*BuildTrigger `protobuf:"bytes,1,rep,name=triggers,proto3" json:"triggers,omitempty"` // Token to receive the next page of results. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` } func (x *ListBuildTriggersResponse) Reset() { *x = ListBuildTriggersResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListBuildTriggersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListBuildTriggersResponse) ProtoMessage() {} func (x *ListBuildTriggersResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 ListBuildTriggersResponse.ProtoReflect.Descriptor instead. func (*ListBuildTriggersResponse) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{30} } func (x *ListBuildTriggersResponse) GetTriggers() []*BuildTrigger { if x != nil { return x.Triggers } return nil } func (x *ListBuildTriggersResponse) GetNextPageToken() string { if x != nil { return x.NextPageToken } return "" } // Request to delete a `BuildTrigger`. type DeleteBuildTriggerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project that owns the trigger. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. ID of the `BuildTrigger` to delete. TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` } func (x *DeleteBuildTriggerRequest) Reset() { *x = DeleteBuildTriggerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteBuildTriggerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteBuildTriggerRequest) ProtoMessage() {} func (x *DeleteBuildTriggerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_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 DeleteBuildTriggerRequest.ProtoReflect.Descriptor instead. func (*DeleteBuildTriggerRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{31} } func (x *DeleteBuildTriggerRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *DeleteBuildTriggerRequest) GetTriggerId() string { if x != nil { return x.TriggerId } return "" } // Request to update an existing `BuildTrigger`. type UpdateBuildTriggerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. ID of the project that owns the trigger. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Required. ID of the `BuildTrigger` to update. TriggerId string `protobuf:"bytes,2,opt,name=trigger_id,json=triggerId,proto3" json:"trigger_id,omitempty"` // Required. `BuildTrigger` to update. Trigger *BuildTrigger `protobuf:"bytes,3,opt,name=trigger,proto3" json:"trigger,omitempty"` } func (x *UpdateBuildTriggerRequest) Reset() { *x = UpdateBuildTriggerRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateBuildTriggerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateBuildTriggerRequest) ProtoMessage() {} func (x *UpdateBuildTriggerRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateBuildTriggerRequest.ProtoReflect.Descriptor instead. func (*UpdateBuildTriggerRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{32} } func (x *UpdateBuildTriggerRequest) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *UpdateBuildTriggerRequest) GetTriggerId() string { if x != nil { return x.TriggerId } return "" } func (x *UpdateBuildTriggerRequest) GetTrigger() *BuildTrigger { if x != nil { return x.Trigger } return nil } // Optional arguments to enable specific features of builds. type BuildOptions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Requested hash for SourceProvenance. SourceProvenanceHash []Hash_HashType `protobuf:"varint,1,rep,packed,name=source_provenance_hash,json=sourceProvenanceHash,proto3,enum=google.devtools.cloudbuild.v1.Hash_HashType" json:"source_provenance_hash,omitempty"` // Requested verifiability options. RequestedVerifyOption BuildOptions_VerifyOption `protobuf:"varint,2,opt,name=requested_verify_option,json=requestedVerifyOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_VerifyOption" json:"requested_verify_option,omitempty"` // Compute Engine machine type on which to run the build. MachineType BuildOptions_MachineType `protobuf:"varint,3,opt,name=machine_type,json=machineType,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_MachineType" json:"machine_type,omitempty"` // Requested disk size for the VM that runs the build. Note that this is *NOT* // "disk free"; some of the space will be used by the operating system and // build utilities. Also note that this is the minimum disk size that will be // allocated for the build -- the build may run with a larger disk than // requested. At present, the maximum disk size is 1000GB; builds that request // more than the maximum are rejected with an error. DiskSizeGb int64 `protobuf:"varint,6,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"` // Option to specify behavior when there is an error in the substitution // checks. SubstitutionOption BuildOptions_SubstitutionOption `protobuf:"varint,4,opt,name=substitution_option,json=substitutionOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_SubstitutionOption" json:"substitution_option,omitempty"` // Option to define build log streaming behavior to Google Cloud // Storage. LogStreamingOption BuildOptions_LogStreamingOption `protobuf:"varint,5,opt,name=log_streaming_option,json=logStreamingOption,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_LogStreamingOption" json:"log_streaming_option,omitempty"` // Option to specify a `WorkerPool` for the build. // Format: projects/{project}/workerPools/{workerPool} // // This field is experimental. WorkerPool string `protobuf:"bytes,7,opt,name=worker_pool,json=workerPool,proto3" json:"worker_pool,omitempty"` // Option to specify the logging mode, which determines where the logs are // stored. Logging BuildOptions_LoggingMode `protobuf:"varint,11,opt,name=logging,proto3,enum=google.devtools.cloudbuild.v1.BuildOptions_LoggingMode" json:"logging,omitempty"` // A list of global environment variable definitions that will exist for all // build steps in this build. If a variable is defined in both globally and in // a build step, the variable will use the build step value. // // The elements are of the form "KEY=VALUE" for the environment variable "KEY" // being given the value "VALUE". Env []string `protobuf:"bytes,12,rep,name=env,proto3" json:"env,omitempty"` // A list of global environment variables, which are encrypted using a Cloud // Key Management Service crypto key. These values must be specified in the // build's `Secret`. These variables will be available to all build steps // in this build. SecretEnv []string `protobuf:"bytes,13,rep,name=secret_env,json=secretEnv,proto3" json:"secret_env,omitempty"` // Global list of volumes to mount for ALL build steps // // Each volume is created as an empty volume prior to starting the build // process. Upon completion of the build, volumes and their contents are // discarded. Global volume names and paths cannot conflict with the volumes // defined a build step. // // Using a global volume in a build with only one step is not valid as // it is indicative of a build request with an incorrect configuration. Volumes []*Volume `protobuf:"bytes,14,rep,name=volumes,proto3" json:"volumes,omitempty"` } func (x *BuildOptions) Reset() { *x = BuildOptions{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *BuildOptions) String() string { return protoimpl.X.MessageStringOf(x) } func (*BuildOptions) ProtoMessage() {} func (x *BuildOptions) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BuildOptions.ProtoReflect.Descriptor instead. func (*BuildOptions) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{33} } func (x *BuildOptions) GetSourceProvenanceHash() []Hash_HashType { if x != nil { return x.SourceProvenanceHash } return nil } func (x *BuildOptions) GetRequestedVerifyOption() BuildOptions_VerifyOption { if x != nil { return x.RequestedVerifyOption } return BuildOptions_NOT_VERIFIED } func (x *BuildOptions) GetMachineType() BuildOptions_MachineType { if x != nil { return x.MachineType } return BuildOptions_UNSPECIFIED } func (x *BuildOptions) GetDiskSizeGb() int64 { if x != nil { return x.DiskSizeGb } return 0 } func (x *BuildOptions) GetSubstitutionOption() BuildOptions_SubstitutionOption { if x != nil { return x.SubstitutionOption } return BuildOptions_MUST_MATCH } func (x *BuildOptions) GetLogStreamingOption() BuildOptions_LogStreamingOption { if x != nil { return x.LogStreamingOption } return BuildOptions_STREAM_DEFAULT } func (x *BuildOptions) GetWorkerPool() string { if x != nil { return x.WorkerPool } return "" } func (x *BuildOptions) GetLogging() BuildOptions_LoggingMode { if x != nil { return x.Logging } return BuildOptions_LOGGING_UNSPECIFIED } func (x *BuildOptions) GetEnv() []string { if x != nil { return x.Env } return nil } func (x *BuildOptions) GetSecretEnv() []string { if x != nil { return x.SecretEnv } return nil } func (x *BuildOptions) GetVolumes() []*Volume { if x != nil { return x.Volumes } return nil } // Configuration for a WorkerPool to run the builds. // // Workers are machines that Cloud Build uses to run your builds. By default, // all workers run in a project owned by Cloud Build. To have full control over // the workers that execute your builds -- such as enabling them to access // private resources on your private network -- you can request Cloud Build to // run the workers in your own project by creating a custom workers pool. type WorkerPool struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // User-defined name of the `WorkerPool`. Name string `protobuf:"bytes,14,opt,name=name,proto3" json:"name,omitempty"` // The project ID of the GCP project for which the `WorkerPool` is created. ProjectId string `protobuf:"bytes,2,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Output only. The service account used to manage the `WorkerPool`. The // service account must have the Compute Instance Admin (Beta) permission at // the project level. ServiceAccountEmail string `protobuf:"bytes,3,opt,name=service_account_email,json=serviceAccountEmail,proto3" json:"service_account_email,omitempty"` // Total number of workers to be created across all requested regions. WorkerCount int64 `protobuf:"varint,4,opt,name=worker_count,json=workerCount,proto3" json:"worker_count,omitempty"` // Configuration to be used for a creating workers in the `WorkerPool`. WorkerConfig *WorkerConfig `protobuf:"bytes,16,opt,name=worker_config,json=workerConfig,proto3" json:"worker_config,omitempty"` // List of regions to create the `WorkerPool`. Regions can't be empty. // If Cloud Build adds a new GCP region in the future, the existing // `WorkerPool` will not be enabled in the new region automatically; // you must add the new region to the `regions` field to enable the // `WorkerPool` in that region. Regions []WorkerPool_Region `protobuf:"varint,9,rep,packed,name=regions,proto3,enum=google.devtools.cloudbuild.v1.WorkerPool_Region" json:"regions,omitempty"` // Output only. Time at which the request to create the `WorkerPool` was // received. CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` // Output only. Time at which the request to update the `WorkerPool` was // received. UpdateTime *timestamp.Timestamp `protobuf:"bytes,17,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Output only. Time at which the request to delete the `WorkerPool` was // received. DeleteTime *timestamp.Timestamp `protobuf:"bytes,12,opt,name=delete_time,json=deleteTime,proto3" json:"delete_time,omitempty"` // Output only. WorkerPool Status. Status WorkerPool_Status `protobuf:"varint,13,opt,name=status,proto3,enum=google.devtools.cloudbuild.v1.WorkerPool_Status" json:"status,omitempty"` } func (x *WorkerPool) Reset() { *x = WorkerPool{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkerPool) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkerPool) ProtoMessage() {} func (x *WorkerPool) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use WorkerPool.ProtoReflect.Descriptor instead. func (*WorkerPool) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{34} } func (x *WorkerPool) GetName() string { if x != nil { return x.Name } return "" } func (x *WorkerPool) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *WorkerPool) GetServiceAccountEmail() string { if x != nil { return x.ServiceAccountEmail } return "" } func (x *WorkerPool) GetWorkerCount() int64 { if x != nil { return x.WorkerCount } return 0 } func (x *WorkerPool) GetWorkerConfig() *WorkerConfig { if x != nil { return x.WorkerConfig } return nil } func (x *WorkerPool) GetRegions() []WorkerPool_Region { if x != nil { return x.Regions } return nil } func (x *WorkerPool) GetCreateTime() *timestamp.Timestamp { if x != nil { return x.CreateTime } return nil } func (x *WorkerPool) GetUpdateTime() *timestamp.Timestamp { if x != nil { return x.UpdateTime } return nil } func (x *WorkerPool) GetDeleteTime() *timestamp.Timestamp { if x != nil { return x.DeleteTime } return nil } func (x *WorkerPool) GetStatus() WorkerPool_Status { if x != nil { return x.Status } return WorkerPool_STATUS_UNSPECIFIED } // WorkerConfig defines the configuration to be used for a creating workers in // the pool. type WorkerConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Machine Type of the worker, such as n1-standard-1. // See https://cloud.google.com/compute/docs/machine-types. // If left blank, Cloud Build will use a standard unspecified machine to // create the worker pool. // `machine_type` is overridden if you specify a different machine type in // `build_options`. In this case, the VM specified in the `build_options` // will be created on demand at build time. For more information see // https://cloud.google.com/cloud-build/docs/speeding-up-builds#using_custom_virtual_machine_sizes MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"` // Size of the disk attached to the worker, in GB. // See https://cloud.google.com/compute/docs/disks/ // If `0` is specified, Cloud Build will use a standard disk size. // `disk_size` is overridden if you specify a different disk size in // `build_options`. In this case, a VM with a disk size specified in the // `build_options` will be created on demand at build time. For more // information see // https://cloud.google.com/cloud-build/docs/api/reference/rest/v1/projects.builds#buildoptions DiskSizeGb int64 `protobuf:"varint,2,opt,name=disk_size_gb,json=diskSizeGb,proto3" json:"disk_size_gb,omitempty"` // The network definition used to create the worker. // If this section is left empty, the workers will be created in // WorkerPool.project_id on the default network. Network *Network `protobuf:"bytes,3,opt,name=network,proto3" json:"network,omitempty"` // The tag applied to the worker, and the same tag used by the firewall rule. // It is used to identify the Cloud Build workers among other VMs. // The default value for tag is `worker`. Tag string `protobuf:"bytes,4,opt,name=tag,proto3" json:"tag,omitempty"` } func (x *WorkerConfig) Reset() { *x = WorkerConfig{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *WorkerConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*WorkerConfig) ProtoMessage() {} func (x *WorkerConfig) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[35] 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 WorkerConfig.ProtoReflect.Descriptor instead. func (*WorkerConfig) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{35} } func (x *WorkerConfig) GetMachineType() string { if x != nil { return x.MachineType } return "" } func (x *WorkerConfig) GetDiskSizeGb() int64 { if x != nil { return x.DiskSizeGb } return 0 } func (x *WorkerConfig) GetNetwork() *Network { if x != nil { return x.Network } return nil } func (x *WorkerConfig) GetTag() string { if x != nil { return x.Tag } return "" } // Network describes the GCP network used to create workers in. type Network struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Project id containing the defined network and subnetwork. For a peered VPC, // this will be the same as the project_id in which the workers are created. // For a shared VPC, this will be the project sharing the network with the // project_id project in which workers will be created. For custom workers // with no VPC, this will be the same as project_id. ProjectId string `protobuf:"bytes,1,opt,name=project_id,json=projectId,proto3" json:"project_id,omitempty"` // Network on which the workers are created. // "default" network is used if empty. Network string `protobuf:"bytes,2,opt,name=network,proto3" json:"network,omitempty"` // Subnetwork on which the workers are created. // "default" subnetwork is used if empty. Subnetwork string `protobuf:"bytes,3,opt,name=subnetwork,proto3" json:"subnetwork,omitempty"` } func (x *Network) Reset() { *x = Network{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Network) String() string { return protoimpl.X.MessageStringOf(x) } func (*Network) ProtoMessage() {} func (x *Network) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Network.ProtoReflect.Descriptor instead. func (*Network) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{36} } func (x *Network) GetProjectId() string { if x != nil { return x.ProjectId } return "" } func (x *Network) GetNetwork() string { if x != nil { return x.Network } return "" } func (x *Network) GetSubnetwork() string { if x != nil { return x.Subnetwork } return "" } // Request to create a new `WorkerPool`. type CreateWorkerPoolRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // ID of the parent project. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // `WorkerPool` resource to create. WorkerPool *WorkerPool `protobuf:"bytes,2,opt,name=worker_pool,json=workerPool,proto3" json:"worker_pool,omitempty"` } func (x *CreateWorkerPoolRequest) Reset() { *x = CreateWorkerPoolRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateWorkerPoolRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateWorkerPoolRequest) ProtoMessage() {} func (x *CreateWorkerPoolRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use CreateWorkerPoolRequest.ProtoReflect.Descriptor instead. func (*CreateWorkerPoolRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{37} } func (x *CreateWorkerPoolRequest) GetParent() string { if x != nil { return x.Parent } return "" } func (x *CreateWorkerPoolRequest) GetWorkerPool() *WorkerPool { if x != nil { return x.WorkerPool } return nil } // Request to get a `WorkerPool` with the specified name. type GetWorkerPoolRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The field will contain name of the resource requested, for example: // "projects/project-1/workerPools/workerpool-name" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *GetWorkerPoolRequest) Reset() { *x = GetWorkerPoolRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetWorkerPoolRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetWorkerPoolRequest) ProtoMessage() {} func (x *GetWorkerPoolRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[38] 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 GetWorkerPoolRequest.ProtoReflect.Descriptor instead. func (*GetWorkerPoolRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{38} } func (x *GetWorkerPoolRequest) GetName() string { if x != nil { return x.Name } return "" } // Request to delete a `WorkerPool`. type DeleteWorkerPoolRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The field will contain name of the resource requested, for example: // "projects/project-1/workerPools/workerpool-name" Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *DeleteWorkerPoolRequest) Reset() { *x = DeleteWorkerPoolRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteWorkerPoolRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteWorkerPoolRequest) ProtoMessage() {} func (x *DeleteWorkerPoolRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[39] 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 DeleteWorkerPoolRequest.ProtoReflect.Descriptor instead. func (*DeleteWorkerPoolRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{39} } func (x *DeleteWorkerPoolRequest) GetName() string { if x != nil { return x.Name } return "" } // Request to update a `WorkerPool`. type UpdateWorkerPoolRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // The field will contain name of the resource requested, for example: // "projects/project-1/workerPools/workerpool-name" Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // `WorkerPool` resource to update. WorkerPool *WorkerPool `protobuf:"bytes,3,opt,name=worker_pool,json=workerPool,proto3" json:"worker_pool,omitempty"` } func (x *UpdateWorkerPoolRequest) Reset() { *x = UpdateWorkerPoolRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateWorkerPoolRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateWorkerPoolRequest) ProtoMessage() {} func (x *UpdateWorkerPoolRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use UpdateWorkerPoolRequest.ProtoReflect.Descriptor instead. func (*UpdateWorkerPoolRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{40} } func (x *UpdateWorkerPoolRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateWorkerPoolRequest) GetWorkerPool() *WorkerPool { if x != nil { return x.WorkerPool } return nil } // Request to list `WorkerPool`s. type ListWorkerPoolsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // ID of the parent project. Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` } func (x *ListWorkerPoolsRequest) Reset() { *x = ListWorkerPoolsRequest{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkerPoolsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkerPoolsRequest) ProtoMessage() {} func (x *ListWorkerPoolsRequest) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[41] 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 ListWorkerPoolsRequest.ProtoReflect.Descriptor instead. func (*ListWorkerPoolsRequest) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{41} } func (x *ListWorkerPoolsRequest) GetParent() string { if x != nil { return x.Parent } return "" } // Response containing existing `WorkerPools`. type ListWorkerPoolsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // `WorkerPools` for the project. WorkerPools []*WorkerPool `protobuf:"bytes,1,rep,name=worker_pools,json=workerPools,proto3" json:"worker_pools,omitempty"` } func (x *ListWorkerPoolsResponse) Reset() { *x = ListWorkerPoolsResponse{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListWorkerPoolsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListWorkerPoolsResponse) ProtoMessage() {} func (x *ListWorkerPoolsResponse) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListWorkerPoolsResponse.ProtoReflect.Descriptor instead. func (*ListWorkerPoolsResponse) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{42} } func (x *ListWorkerPoolsResponse) GetWorkerPools() []*WorkerPool { if x != nil { return x.WorkerPools } return nil } // Files in the workspace to upload to Cloud Storage upon successful // completion of all build steps. type Artifacts_ArtifactObjects struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Cloud Storage bucket and optional object path, in the form // "gs://bucket/path/to/somewhere/". (see [Bucket Name // Requirements](https://cloud.google.com/storage/docs/bucket-naming#requirements)). // // Files in the workspace matching any path pattern will be uploaded to // Cloud Storage with this location as a prefix. Location string `protobuf:"bytes,1,opt,name=location,proto3" json:"location,omitempty"` // Path globs used to match files in the build's workspace. Paths []string `protobuf:"bytes,2,rep,name=paths,proto3" json:"paths,omitempty"` // Output only. Stores timing information for pushing all artifact objects. Timing *TimeSpan `protobuf:"bytes,3,opt,name=timing,proto3" json:"timing,omitempty"` } func (x *Artifacts_ArtifactObjects) Reset() { *x = Artifacts_ArtifactObjects{} if protoimpl.UnsafeEnabled { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Artifacts_ArtifactObjects) String() string { return protoimpl.X.MessageStringOf(x) } func (*Artifacts_ArtifactObjects) ProtoMessage() {} func (x *Artifacts_ArtifactObjects) ProtoReflect() protoreflect.Message { mi := &file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[46] 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 Artifacts_ArtifactObjects.ProtoReflect.Descriptor instead. func (*Artifacts_ArtifactObjects) Descriptor() ([]byte, []int) { return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP(), []int{11, 0} } func (x *Artifacts_ArtifactObjects) GetLocation() string { if x != nil { return x.Location } return "" } func (x *Artifacts_ArtifactObjects) GetPaths() []string { if x != nil { return x.Paths } return nil } func (x *Artifacts_ArtifactObjects) GetTiming() *TimeSpan { if x != nil { return x.Timing } return nil } var File_google_devtools_cloudbuild_v1_cloudbuild_proto protoreflect.FileDescriptor var file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x4c, 0x0a, 0x11, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x52, 0x75, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x0d, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x90, 0x03, 0x0a, 0x0a, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x08, 0x74, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x74, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x62, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 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, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x06, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x0b, 0x70, 0x75, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x70, 0x75, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x8c, 0x04, 0x0a, 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x65, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x69, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x69, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x77, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x3f, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x0a, 0x70, 0x75, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x30, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0xca, 0x02, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x65, 0x70, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x65, 0x70, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x50, 0x0a, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x0e, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x74, 0x0a, 0x0e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x22, 0xc7, 0x0c, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x53, 0x74, 0x65, 0x70, 0x52, 0x05, 0x73, 0x74, 0x65, 0x70, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x71, 0x75, 0x65, 0x75, 0x65, 0x54, 0x74, 0x6c, 0x12, 0x46, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x67, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x5c, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x45, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x55, 0x72, 0x6c, 0x12, 0x5d, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x3f, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x21, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 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, 0x1a, 0x62, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x8c, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x51, 0x55, 0x45, 0x55, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x4f, 0x52, 0x4b, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x09, 0x22, 0xfe, 0x01, 0x0a, 0x09, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x1a, 0x84, 0x01, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x68, 0x73, 0x12, 0x3f, 0x0a, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x52, 0x06, 0x74, 0x69, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x7c, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x70, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x16, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x3a, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x22, 0xa6, 0x03, 0x0a, 0x10, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x15, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x65, 0x0a, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x1a, 0x68, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x04, 0x48, 0x61, 0x73, 0x68, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x29, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x44, 0x35, 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x1a, 0x3c, 0x0a, 0x0e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x79, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x4a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x7a, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x06, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x12, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0xce, 0x05, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x10, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x3c, 0x0a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x48, 0x00, 0x52, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x1c, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x64, 0x0a, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 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, 0x42, 0x10, 0x0a, 0x0e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x12, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x55, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x70, 0x75, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x73, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x70, 0x75, 0x73, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x02, 0x0a, 0x11, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x68, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x67, 0x65, 0x78, 0x22, 0x3d, 0x0a, 0x0e, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4d, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x68, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x12, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x5f, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x52, 0x65, 0x67, 0x65, 0x78, 0x42, 0x09, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x66, 0x22, 0x8b, 0x01, 0x0a, 0x19, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x60, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x08, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x63, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x64, 0x22, 0xaf, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0xe2, 0x08, 0x0a, 0x0c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x62, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x70, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x12, 0x6f, 0x0a, 0x13, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x14, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x6c, 0x6f, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x51, 0x0a, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x65, 0x6e, 0x76, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x45, 0x6e, 0x76, 0x12, 0x3f, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x0c, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x01, 0x22, 0x43, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x31, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x43, 0x50, 0x55, 0x5f, 0x38, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x31, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x43, 0x50, 0x55, 0x5f, 0x33, 0x32, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x12, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x4d, 0x55, 0x53, 0x54, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x4c, 0x4c, 0x4f, 0x57, 0x5f, 0x4c, 0x4f, 0x4f, 0x53, 0x45, 0x10, 0x01, 0x22, 0x47, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x4f, 0x46, 0x46, 0x10, 0x02, 0x22, 0x40, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x4f, 0x47, 0x47, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x43, 0x53, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x22, 0xea, 0x05, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4a, 0x0a, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x5b, 0x0a, 0x06, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x53, 0x5f, 0x43, 0x45, 0x4e, 0x54, 0x52, 0x41, 0x4c, 0x31, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x53, 0x5f, 0x57, 0x45, 0x53, 0x54, 0x31, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x53, 0x5f, 0x45, 0x41, 0x53, 0x54, 0x31, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x53, 0x5f, 0x45, 0x41, 0x53, 0x54, 0x34, 0x10, 0x04, 0x22, 0x56, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x04, 0x22, 0xa7, 0x01, 0x0a, 0x0c, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x22, 0x62, 0x0a, 0x07, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x7d, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0a, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x30, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x67, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x32, 0xa1, 0x16, 0x0a, 0x0a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0xc5, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x3a, 0x05, 0x62, 0x75, 0x69, 0x6c, 0x64, 0xda, 0x41, 0x10, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0xca, 0x41, 0x1f, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x9f, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0xda, 0x41, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x69, 0x64, 0x12, 0xaf, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0xda, 0x41, 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0xaf, 0x01, 0x0a, 0x0b, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x69, 0x64, 0x12, 0xc7, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x74, 0x72, 0x79, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x68, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x3a, 0x01, 0x2a, 0xda, 0x41, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x69, 0x64, 0xca, 0x41, 0x1f, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xc5, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x48, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x22, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0xda, 0x41, 0x12, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xc6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0xda, 0x41, 0x15, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0xda, 0x41, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x12, 0xb7, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0xda, 0x41, 0x15, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x12, 0xdd, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x22, 0x60, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x32, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x07, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0xda, 0x41, 0x1d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xee, 0x01, 0x0a, 0x0f, 0x52, 0x75, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x22, 0x33, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x7d, 0x3a, 0x72, 0x75, 0x6e, 0x3a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0xda, 0x41, 0x1c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x2c, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x2c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0xca, 0x41, 0x1f, 0x0a, 0x05, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x16, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x00, 0x12, 0x82, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x6b, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2e, 0x76, 0x31, 0x50, 0x01, 0x5a, 0x47, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x62, 0x75, 0x69, 0x6c, 0x64, 0xa2, 0x02, 0x03, 0x47, 0x43, 0x42, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescOnce sync.Once file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescData = file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDesc ) func file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescGZIP() []byte { file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescOnce.Do(func() { file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescData) }) return file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDescData } var file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes = make([]protoimpl.EnumInfo, 10) var file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes = make([]protoimpl.MessageInfo, 50) var file_google_devtools_cloudbuild_v1_cloudbuild_proto_goTypes = []interface{}{ (Build_Status)(0), // 0: google.devtools.cloudbuild.v1.Build.Status (Hash_HashType)(0), // 1: google.devtools.cloudbuild.v1.Hash.HashType (PullRequestFilter_CommentControl)(0), // 2: google.devtools.cloudbuild.v1.PullRequestFilter.CommentControl (BuildOptions_VerifyOption)(0), // 3: google.devtools.cloudbuild.v1.BuildOptions.VerifyOption (BuildOptions_MachineType)(0), // 4: google.devtools.cloudbuild.v1.BuildOptions.MachineType (BuildOptions_SubstitutionOption)(0), // 5: google.devtools.cloudbuild.v1.BuildOptions.SubstitutionOption (BuildOptions_LogStreamingOption)(0), // 6: google.devtools.cloudbuild.v1.BuildOptions.LogStreamingOption (BuildOptions_LoggingMode)(0), // 7: google.devtools.cloudbuild.v1.BuildOptions.LoggingMode (WorkerPool_Region)(0), // 8: google.devtools.cloudbuild.v1.WorkerPool.Region (WorkerPool_Status)(0), // 9: google.devtools.cloudbuild.v1.WorkerPool.Status (*RetryBuildRequest)(nil), // 10: google.devtools.cloudbuild.v1.RetryBuildRequest (*RunBuildTriggerRequest)(nil), // 11: google.devtools.cloudbuild.v1.RunBuildTriggerRequest (*StorageSource)(nil), // 12: google.devtools.cloudbuild.v1.StorageSource (*RepoSource)(nil), // 13: google.devtools.cloudbuild.v1.RepoSource (*Source)(nil), // 14: google.devtools.cloudbuild.v1.Source (*BuiltImage)(nil), // 15: google.devtools.cloudbuild.v1.BuiltImage (*BuildStep)(nil), // 16: google.devtools.cloudbuild.v1.BuildStep (*Volume)(nil), // 17: google.devtools.cloudbuild.v1.Volume (*Results)(nil), // 18: google.devtools.cloudbuild.v1.Results (*ArtifactResult)(nil), // 19: google.devtools.cloudbuild.v1.ArtifactResult (*Build)(nil), // 20: google.devtools.cloudbuild.v1.Build (*Artifacts)(nil), // 21: google.devtools.cloudbuild.v1.Artifacts (*TimeSpan)(nil), // 22: google.devtools.cloudbuild.v1.TimeSpan (*BuildOperationMetadata)(nil), // 23: google.devtools.cloudbuild.v1.BuildOperationMetadata (*SourceProvenance)(nil), // 24: google.devtools.cloudbuild.v1.SourceProvenance (*FileHashes)(nil), // 25: google.devtools.cloudbuild.v1.FileHashes (*Hash)(nil), // 26: google.devtools.cloudbuild.v1.Hash (*Secret)(nil), // 27: google.devtools.cloudbuild.v1.Secret (*CreateBuildRequest)(nil), // 28: google.devtools.cloudbuild.v1.CreateBuildRequest (*GetBuildRequest)(nil), // 29: google.devtools.cloudbuild.v1.GetBuildRequest (*ListBuildsRequest)(nil), // 30: google.devtools.cloudbuild.v1.ListBuildsRequest (*ListBuildsResponse)(nil), // 31: google.devtools.cloudbuild.v1.ListBuildsResponse (*CancelBuildRequest)(nil), // 32: google.devtools.cloudbuild.v1.CancelBuildRequest (*BuildTrigger)(nil), // 33: google.devtools.cloudbuild.v1.BuildTrigger (*GitHubEventsConfig)(nil), // 34: google.devtools.cloudbuild.v1.GitHubEventsConfig (*PullRequestFilter)(nil), // 35: google.devtools.cloudbuild.v1.PullRequestFilter (*PushFilter)(nil), // 36: google.devtools.cloudbuild.v1.PushFilter (*CreateBuildTriggerRequest)(nil), // 37: google.devtools.cloudbuild.v1.CreateBuildTriggerRequest (*GetBuildTriggerRequest)(nil), // 38: google.devtools.cloudbuild.v1.GetBuildTriggerRequest (*ListBuildTriggersRequest)(nil), // 39: google.devtools.cloudbuild.v1.ListBuildTriggersRequest (*ListBuildTriggersResponse)(nil), // 40: google.devtools.cloudbuild.v1.ListBuildTriggersResponse (*DeleteBuildTriggerRequest)(nil), // 41: google.devtools.cloudbuild.v1.DeleteBuildTriggerRequest (*UpdateBuildTriggerRequest)(nil), // 42: google.devtools.cloudbuild.v1.UpdateBuildTriggerRequest (*BuildOptions)(nil), // 43: google.devtools.cloudbuild.v1.BuildOptions (*WorkerPool)(nil), // 44: google.devtools.cloudbuild.v1.WorkerPool (*WorkerConfig)(nil), // 45: google.devtools.cloudbuild.v1.WorkerConfig (*Network)(nil), // 46: google.devtools.cloudbuild.v1.Network (*CreateWorkerPoolRequest)(nil), // 47: google.devtools.cloudbuild.v1.CreateWorkerPoolRequest (*GetWorkerPoolRequest)(nil), // 48: google.devtools.cloudbuild.v1.GetWorkerPoolRequest (*DeleteWorkerPoolRequest)(nil), // 49: google.devtools.cloudbuild.v1.DeleteWorkerPoolRequest (*UpdateWorkerPoolRequest)(nil), // 50: google.devtools.cloudbuild.v1.UpdateWorkerPoolRequest (*ListWorkerPoolsRequest)(nil), // 51: google.devtools.cloudbuild.v1.ListWorkerPoolsRequest (*ListWorkerPoolsResponse)(nil), // 52: google.devtools.cloudbuild.v1.ListWorkerPoolsResponse nil, // 53: google.devtools.cloudbuild.v1.RepoSource.SubstitutionsEntry nil, // 54: google.devtools.cloudbuild.v1.Build.SubstitutionsEntry nil, // 55: google.devtools.cloudbuild.v1.Build.TimingEntry (*Artifacts_ArtifactObjects)(nil), // 56: google.devtools.cloudbuild.v1.Artifacts.ArtifactObjects nil, // 57: google.devtools.cloudbuild.v1.SourceProvenance.FileHashesEntry nil, // 58: google.devtools.cloudbuild.v1.Secret.SecretEnvEntry nil, // 59: google.devtools.cloudbuild.v1.BuildTrigger.SubstitutionsEntry (*duration.Duration)(nil), // 60: google.protobuf.Duration (*timestamp.Timestamp)(nil), // 61: google.protobuf.Timestamp (*longrunning.Operation)(nil), // 62: google.longrunning.Operation (*empty.Empty)(nil), // 63: google.protobuf.Empty } var file_google_devtools_cloudbuild_v1_cloudbuild_proto_depIdxs = []int32{ 13, // 0: google.devtools.cloudbuild.v1.RunBuildTriggerRequest.source:type_name -> google.devtools.cloudbuild.v1.RepoSource 53, // 1: google.devtools.cloudbuild.v1.RepoSource.substitutions:type_name -> google.devtools.cloudbuild.v1.RepoSource.SubstitutionsEntry 12, // 2: google.devtools.cloudbuild.v1.Source.storage_source:type_name -> google.devtools.cloudbuild.v1.StorageSource 13, // 3: google.devtools.cloudbuild.v1.Source.repo_source:type_name -> google.devtools.cloudbuild.v1.RepoSource 22, // 4: google.devtools.cloudbuild.v1.BuiltImage.push_timing:type_name -> google.devtools.cloudbuild.v1.TimeSpan 17, // 5: google.devtools.cloudbuild.v1.BuildStep.volumes:type_name -> google.devtools.cloudbuild.v1.Volume 22, // 6: google.devtools.cloudbuild.v1.BuildStep.timing:type_name -> google.devtools.cloudbuild.v1.TimeSpan 22, // 7: google.devtools.cloudbuild.v1.BuildStep.pull_timing:type_name -> google.devtools.cloudbuild.v1.TimeSpan 60, // 8: google.devtools.cloudbuild.v1.BuildStep.timeout:type_name -> google.protobuf.Duration 0, // 9: google.devtools.cloudbuild.v1.BuildStep.status:type_name -> google.devtools.cloudbuild.v1.Build.Status 15, // 10: google.devtools.cloudbuild.v1.Results.images:type_name -> google.devtools.cloudbuild.v1.BuiltImage 22, // 11: google.devtools.cloudbuild.v1.Results.artifact_timing:type_name -> google.devtools.cloudbuild.v1.TimeSpan 25, // 12: google.devtools.cloudbuild.v1.ArtifactResult.file_hash:type_name -> google.devtools.cloudbuild.v1.FileHashes 0, // 13: google.devtools.cloudbuild.v1.Build.status:type_name -> google.devtools.cloudbuild.v1.Build.Status 14, // 14: google.devtools.cloudbuild.v1.Build.source:type_name -> google.devtools.cloudbuild.v1.Source 16, // 15: google.devtools.cloudbuild.v1.Build.steps:type_name -> google.devtools.cloudbuild.v1.BuildStep 18, // 16: google.devtools.cloudbuild.v1.Build.results:type_name -> google.devtools.cloudbuild.v1.Results 61, // 17: google.devtools.cloudbuild.v1.Build.create_time:type_name -> google.protobuf.Timestamp 61, // 18: google.devtools.cloudbuild.v1.Build.start_time:type_name -> google.protobuf.Timestamp 61, // 19: google.devtools.cloudbuild.v1.Build.finish_time:type_name -> google.protobuf.Timestamp 60, // 20: google.devtools.cloudbuild.v1.Build.timeout:type_name -> google.protobuf.Duration 60, // 21: google.devtools.cloudbuild.v1.Build.queue_ttl:type_name -> google.protobuf.Duration 21, // 22: google.devtools.cloudbuild.v1.Build.artifacts:type_name -> google.devtools.cloudbuild.v1.Artifacts 24, // 23: google.devtools.cloudbuild.v1.Build.source_provenance:type_name -> google.devtools.cloudbuild.v1.SourceProvenance 43, // 24: google.devtools.cloudbuild.v1.Build.options:type_name -> google.devtools.cloudbuild.v1.BuildOptions 54, // 25: google.devtools.cloudbuild.v1.Build.substitutions:type_name -> google.devtools.cloudbuild.v1.Build.SubstitutionsEntry 27, // 26: google.devtools.cloudbuild.v1.Build.secrets:type_name -> google.devtools.cloudbuild.v1.Secret 55, // 27: google.devtools.cloudbuild.v1.Build.timing:type_name -> google.devtools.cloudbuild.v1.Build.TimingEntry 56, // 28: google.devtools.cloudbuild.v1.Artifacts.objects:type_name -> google.devtools.cloudbuild.v1.Artifacts.ArtifactObjects 61, // 29: google.devtools.cloudbuild.v1.TimeSpan.start_time:type_name -> google.protobuf.Timestamp 61, // 30: google.devtools.cloudbuild.v1.TimeSpan.end_time:type_name -> google.protobuf.Timestamp 20, // 31: google.devtools.cloudbuild.v1.BuildOperationMetadata.build:type_name -> google.devtools.cloudbuild.v1.Build 12, // 32: google.devtools.cloudbuild.v1.SourceProvenance.resolved_storage_source:type_name -> google.devtools.cloudbuild.v1.StorageSource 13, // 33: google.devtools.cloudbuild.v1.SourceProvenance.resolved_repo_source:type_name -> google.devtools.cloudbuild.v1.RepoSource 57, // 34: google.devtools.cloudbuild.v1.SourceProvenance.file_hashes:type_name -> google.devtools.cloudbuild.v1.SourceProvenance.FileHashesEntry 26, // 35: google.devtools.cloudbuild.v1.FileHashes.file_hash:type_name -> google.devtools.cloudbuild.v1.Hash 1, // 36: google.devtools.cloudbuild.v1.Hash.type:type_name -> google.devtools.cloudbuild.v1.Hash.HashType 58, // 37: google.devtools.cloudbuild.v1.Secret.secret_env:type_name -> google.devtools.cloudbuild.v1.Secret.SecretEnvEntry 20, // 38: google.devtools.cloudbuild.v1.CreateBuildRequest.build:type_name -> google.devtools.cloudbuild.v1.Build 20, // 39: google.devtools.cloudbuild.v1.ListBuildsResponse.builds:type_name -> google.devtools.cloudbuild.v1.Build 13, // 40: google.devtools.cloudbuild.v1.BuildTrigger.trigger_template:type_name -> google.devtools.cloudbuild.v1.RepoSource 34, // 41: google.devtools.cloudbuild.v1.BuildTrigger.github:type_name -> google.devtools.cloudbuild.v1.GitHubEventsConfig 20, // 42: google.devtools.cloudbuild.v1.BuildTrigger.build:type_name -> google.devtools.cloudbuild.v1.Build 61, // 43: google.devtools.cloudbuild.v1.BuildTrigger.create_time:type_name -> google.protobuf.Timestamp 59, // 44: google.devtools.cloudbuild.v1.BuildTrigger.substitutions:type_name -> google.devtools.cloudbuild.v1.BuildTrigger.SubstitutionsEntry 35, // 45: google.devtools.cloudbuild.v1.GitHubEventsConfig.pull_request:type_name -> google.devtools.cloudbuild.v1.PullRequestFilter 36, // 46: google.devtools.cloudbuild.v1.GitHubEventsConfig.push:type_name -> google.devtools.cloudbuild.v1.PushFilter 2, // 47: google.devtools.cloudbuild.v1.PullRequestFilter.comment_control:type_name -> google.devtools.cloudbuild.v1.PullRequestFilter.CommentControl 33, // 48: google.devtools.cloudbuild.v1.CreateBuildTriggerRequest.trigger:type_name -> google.devtools.cloudbuild.v1.BuildTrigger 33, // 49: google.devtools.cloudbuild.v1.ListBuildTriggersResponse.triggers:type_name -> google.devtools.cloudbuild.v1.BuildTrigger 33, // 50: google.devtools.cloudbuild.v1.UpdateBuildTriggerRequest.trigger:type_name -> google.devtools.cloudbuild.v1.BuildTrigger 1, // 51: google.devtools.cloudbuild.v1.BuildOptions.source_provenance_hash:type_name -> google.devtools.cloudbuild.v1.Hash.HashType 3, // 52: google.devtools.cloudbuild.v1.BuildOptions.requested_verify_option:type_name -> google.devtools.cloudbuild.v1.BuildOptions.VerifyOption 4, // 53: google.devtools.cloudbuild.v1.BuildOptions.machine_type:type_name -> google.devtools.cloudbuild.v1.BuildOptions.MachineType 5, // 54: google.devtools.cloudbuild.v1.BuildOptions.substitution_option:type_name -> google.devtools.cloudbuild.v1.BuildOptions.SubstitutionOption 6, // 55: google.devtools.cloudbuild.v1.BuildOptions.log_streaming_option:type_name -> google.devtools.cloudbuild.v1.BuildOptions.LogStreamingOption 7, // 56: google.devtools.cloudbuild.v1.BuildOptions.logging:type_name -> google.devtools.cloudbuild.v1.BuildOptions.LoggingMode 17, // 57: google.devtools.cloudbuild.v1.BuildOptions.volumes:type_name -> google.devtools.cloudbuild.v1.Volume 45, // 58: google.devtools.cloudbuild.v1.WorkerPool.worker_config:type_name -> google.devtools.cloudbuild.v1.WorkerConfig 8, // 59: google.devtools.cloudbuild.v1.WorkerPool.regions:type_name -> google.devtools.cloudbuild.v1.WorkerPool.Region 61, // 60: google.devtools.cloudbuild.v1.WorkerPool.create_time:type_name -> google.protobuf.Timestamp 61, // 61: google.devtools.cloudbuild.v1.WorkerPool.update_time:type_name -> google.protobuf.Timestamp 61, // 62: google.devtools.cloudbuild.v1.WorkerPool.delete_time:type_name -> google.protobuf.Timestamp 9, // 63: google.devtools.cloudbuild.v1.WorkerPool.status:type_name -> google.devtools.cloudbuild.v1.WorkerPool.Status 46, // 64: google.devtools.cloudbuild.v1.WorkerConfig.network:type_name -> google.devtools.cloudbuild.v1.Network 44, // 65: google.devtools.cloudbuild.v1.CreateWorkerPoolRequest.worker_pool:type_name -> google.devtools.cloudbuild.v1.WorkerPool 44, // 66: google.devtools.cloudbuild.v1.UpdateWorkerPoolRequest.worker_pool:type_name -> google.devtools.cloudbuild.v1.WorkerPool 44, // 67: google.devtools.cloudbuild.v1.ListWorkerPoolsResponse.worker_pools:type_name -> google.devtools.cloudbuild.v1.WorkerPool 22, // 68: google.devtools.cloudbuild.v1.Build.TimingEntry.value:type_name -> google.devtools.cloudbuild.v1.TimeSpan 22, // 69: google.devtools.cloudbuild.v1.Artifacts.ArtifactObjects.timing:type_name -> google.devtools.cloudbuild.v1.TimeSpan 25, // 70: google.devtools.cloudbuild.v1.SourceProvenance.FileHashesEntry.value:type_name -> google.devtools.cloudbuild.v1.FileHashes 28, // 71: google.devtools.cloudbuild.v1.CloudBuild.CreateBuild:input_type -> google.devtools.cloudbuild.v1.CreateBuildRequest 29, // 72: google.devtools.cloudbuild.v1.CloudBuild.GetBuild:input_type -> google.devtools.cloudbuild.v1.GetBuildRequest 30, // 73: google.devtools.cloudbuild.v1.CloudBuild.ListBuilds:input_type -> google.devtools.cloudbuild.v1.ListBuildsRequest 32, // 74: google.devtools.cloudbuild.v1.CloudBuild.CancelBuild:input_type -> google.devtools.cloudbuild.v1.CancelBuildRequest 10, // 75: google.devtools.cloudbuild.v1.CloudBuild.RetryBuild:input_type -> google.devtools.cloudbuild.v1.RetryBuildRequest 37, // 76: google.devtools.cloudbuild.v1.CloudBuild.CreateBuildTrigger:input_type -> google.devtools.cloudbuild.v1.CreateBuildTriggerRequest 38, // 77: google.devtools.cloudbuild.v1.CloudBuild.GetBuildTrigger:input_type -> google.devtools.cloudbuild.v1.GetBuildTriggerRequest 39, // 78: google.devtools.cloudbuild.v1.CloudBuild.ListBuildTriggers:input_type -> google.devtools.cloudbuild.v1.ListBuildTriggersRequest 41, // 79: google.devtools.cloudbuild.v1.CloudBuild.DeleteBuildTrigger:input_type -> google.devtools.cloudbuild.v1.DeleteBuildTriggerRequest 42, // 80: google.devtools.cloudbuild.v1.CloudBuild.UpdateBuildTrigger:input_type -> google.devtools.cloudbuild.v1.UpdateBuildTriggerRequest 11, // 81: google.devtools.cloudbuild.v1.CloudBuild.RunBuildTrigger:input_type -> google.devtools.cloudbuild.v1.RunBuildTriggerRequest 47, // 82: google.devtools.cloudbuild.v1.CloudBuild.CreateWorkerPool:input_type -> google.devtools.cloudbuild.v1.CreateWorkerPoolRequest 48, // 83: google.devtools.cloudbuild.v1.CloudBuild.GetWorkerPool:input_type -> google.devtools.cloudbuild.v1.GetWorkerPoolRequest 49, // 84: google.devtools.cloudbuild.v1.CloudBuild.DeleteWorkerPool:input_type -> google.devtools.cloudbuild.v1.DeleteWorkerPoolRequest 50, // 85: google.devtools.cloudbuild.v1.CloudBuild.UpdateWorkerPool:input_type -> google.devtools.cloudbuild.v1.UpdateWorkerPoolRequest 51, // 86: google.devtools.cloudbuild.v1.CloudBuild.ListWorkerPools:input_type -> google.devtools.cloudbuild.v1.ListWorkerPoolsRequest 62, // 87: google.devtools.cloudbuild.v1.CloudBuild.CreateBuild:output_type -> google.longrunning.Operation 20, // 88: google.devtools.cloudbuild.v1.CloudBuild.GetBuild:output_type -> google.devtools.cloudbuild.v1.Build 31, // 89: google.devtools.cloudbuild.v1.CloudBuild.ListBuilds:output_type -> google.devtools.cloudbuild.v1.ListBuildsResponse 20, // 90: google.devtools.cloudbuild.v1.CloudBuild.CancelBuild:output_type -> google.devtools.cloudbuild.v1.Build 62, // 91: google.devtools.cloudbuild.v1.CloudBuild.RetryBuild:output_type -> google.longrunning.Operation 33, // 92: google.devtools.cloudbuild.v1.CloudBuild.CreateBuildTrigger:output_type -> google.devtools.cloudbuild.v1.BuildTrigger 33, // 93: google.devtools.cloudbuild.v1.CloudBuild.GetBuildTrigger:output_type -> google.devtools.cloudbuild.v1.BuildTrigger 40, // 94: google.devtools.cloudbuild.v1.CloudBuild.ListBuildTriggers:output_type -> google.devtools.cloudbuild.v1.ListBuildTriggersResponse 63, // 95: google.devtools.cloudbuild.v1.CloudBuild.DeleteBuildTrigger:output_type -> google.protobuf.Empty 33, // 96: google.devtools.cloudbuild.v1.CloudBuild.UpdateBuildTrigger:output_type -> google.devtools.cloudbuild.v1.BuildTrigger 62, // 97: google.devtools.cloudbuild.v1.CloudBuild.RunBuildTrigger:output_type -> google.longrunning.Operation 44, // 98: google.devtools.cloudbuild.v1.CloudBuild.CreateWorkerPool:output_type -> google.devtools.cloudbuild.v1.WorkerPool 44, // 99: google.devtools.cloudbuild.v1.CloudBuild.GetWorkerPool:output_type -> google.devtools.cloudbuild.v1.WorkerPool 63, // 100: google.devtools.cloudbuild.v1.CloudBuild.DeleteWorkerPool:output_type -> google.protobuf.Empty 44, // 101: google.devtools.cloudbuild.v1.CloudBuild.UpdateWorkerPool:output_type -> google.devtools.cloudbuild.v1.WorkerPool 52, // 102: google.devtools.cloudbuild.v1.CloudBuild.ListWorkerPools:output_type -> google.devtools.cloudbuild.v1.ListWorkerPoolsResponse 87, // [87:103] is the sub-list for method output_type 71, // [71:87] is the sub-list for method input_type 71, // [71:71] is the sub-list for extension type_name 71, // [71:71] is the sub-list for extension extendee 0, // [0:71] is the sub-list for field type_name } func init() { file_google_devtools_cloudbuild_v1_cloudbuild_proto_init() } func file_google_devtools_cloudbuild_v1_cloudbuild_proto_init() { if File_google_devtools_cloudbuild_v1_cloudbuild_proto != nil { return } if !protoimpl.UnsafeEnabled { file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RetryBuildRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RunBuildTriggerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StorageSource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepoSource); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Source); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuiltImage); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildStep); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Volume); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Results); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ArtifactResult); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Build); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Artifacts); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*TimeSpan); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildOperationMetadata); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SourceProvenance); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileHashes); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Hash); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Secret); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBuildRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBuildRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBuildsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBuildsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelBuildRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildTrigger); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitHubEventsConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PullRequestFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PushFilter); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBuildTriggerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetBuildTriggerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBuildTriggersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBuildTriggersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteBuildTriggerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateBuildTriggerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BuildOptions); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkerPool); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WorkerConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Network); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateWorkerPoolRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetWorkerPoolRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteWorkerPoolRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateWorkerPoolRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkerPoolsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListWorkerPoolsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Artifacts_ArtifactObjects); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[3].OneofWrappers = []interface{}{ (*RepoSource_BranchName)(nil), (*RepoSource_TagName)(nil), (*RepoSource_CommitSha)(nil), } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[4].OneofWrappers = []interface{}{ (*Source_StorageSource)(nil), (*Source_RepoSource)(nil), } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[23].OneofWrappers = []interface{}{ (*BuildTrigger_Build)(nil), (*BuildTrigger_Filename)(nil), } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[24].OneofWrappers = []interface{}{ (*GitHubEventsConfig_PullRequest)(nil), (*GitHubEventsConfig_Push)(nil), } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[25].OneofWrappers = []interface{}{ (*PullRequestFilter_Branch)(nil), } file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes[26].OneofWrappers = []interface{}{ (*PushFilter_Branch)(nil), (*PushFilter_Tag)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDesc, NumEnums: 10, NumMessages: 50, NumExtensions: 0, NumServices: 1, }, GoTypes: file_google_devtools_cloudbuild_v1_cloudbuild_proto_goTypes, DependencyIndexes: file_google_devtools_cloudbuild_v1_cloudbuild_proto_depIdxs, EnumInfos: file_google_devtools_cloudbuild_v1_cloudbuild_proto_enumTypes, MessageInfos: file_google_devtools_cloudbuild_v1_cloudbuild_proto_msgTypes, }.Build() File_google_devtools_cloudbuild_v1_cloudbuild_proto = out.File file_google_devtools_cloudbuild_v1_cloudbuild_proto_rawDesc = nil file_google_devtools_cloudbuild_v1_cloudbuild_proto_goTypes = nil file_google_devtools_cloudbuild_v1_cloudbuild_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context var _ grpc.ClientConnInterface // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 // CloudBuildClient is the client API for CloudBuild service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type CloudBuildClient interface { // Starts a build with the specified configuration. // // This method returns a long-running `Operation`, which includes the build // ID. Pass the build ID to `GetBuild` to determine the build status (such as // `SUCCESS` or `FAILURE`). CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Returns information about a previously requested build. // // The `Build` that is returned includes its status (such as `SUCCESS`, // `FAILURE`, or `WORKING`), and timing information. GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) // Lists previously requested builds. // // Previously requested builds may still be in-progress, or may have finished // successfully or unsuccessfully. ListBuilds(ctx context.Context, in *ListBuildsRequest, opts ...grpc.CallOption) (*ListBuildsResponse, error) // Cancels a build in progress. CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) // Creates a new build based on the specified build. // // This method creates a new build using the original build request, which may // or may not result in an identical build. // // For triggered builds: // // * Triggered builds resolve to a precise revision; therefore a retry of a // triggered build will result in a build that uses the same revision. // // For non-triggered builds that specify `RepoSource`: // // * If the original build built from the tip of a branch, the retried build // will build from the tip of that branch, which may not be the same revision // as the original build. // * If the original build specified a commit sha or revision ID, the retried // build will use the identical source. // // For builds that specify `StorageSource`: // // * If the original build pulled source from Google Cloud Storage without // specifying the generation of the object, the new build will use the current // object, which may be different from the original build source. // * If the original build pulled source from Cloud Storage and specified the // generation of the object, the new build will attempt to use the same // object, which may or may not be available depending on the bucket's // lifecycle management settings. RetryBuild(ctx context.Context, in *RetryBuildRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Creates a new `BuildTrigger`. // // This API is experimental. CreateBuildTrigger(ctx context.Context, in *CreateBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) // Returns information about a `BuildTrigger`. // // This API is experimental. GetBuildTrigger(ctx context.Context, in *GetBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) // Lists existing `BuildTrigger`s. // // This API is experimental. ListBuildTriggers(ctx context.Context, in *ListBuildTriggersRequest, opts ...grpc.CallOption) (*ListBuildTriggersResponse, error) // Deletes a `BuildTrigger` by its project ID and trigger ID. // // This API is experimental. DeleteBuildTrigger(ctx context.Context, in *DeleteBuildTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error) // Updates a `BuildTrigger` by its project ID and trigger ID. // // This API is experimental. UpdateBuildTrigger(ctx context.Context, in *UpdateBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) // Runs a `BuildTrigger` at a particular source revision. RunBuildTrigger(ctx context.Context, in *RunBuildTriggerRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) // Creates a `WorkerPool` to run the builds, and returns the new worker pool. // // This API is experimental. CreateWorkerPool(ctx context.Context, in *CreateWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) // Returns information about a `WorkerPool`. // // This API is experimental. GetWorkerPool(ctx context.Context, in *GetWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) // Deletes a `WorkerPool` by its project ID and WorkerPool name. // // This API is experimental. DeleteWorkerPool(ctx context.Context, in *DeleteWorkerPoolRequest, opts ...grpc.CallOption) (*empty.Empty, error) // Update a `WorkerPool`. // // This API is experimental. UpdateWorkerPool(ctx context.Context, in *UpdateWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) // List project's `WorkerPool`s. // // This API is experimental. ListWorkerPools(ctx context.Context, in *ListWorkerPoolsRequest, opts ...grpc.CallOption) (*ListWorkerPoolsResponse, error) } type cloudBuildClient struct { cc grpc.ClientConnInterface } func NewCloudBuildClient(cc grpc.ClientConnInterface) CloudBuildClient { return &cloudBuildClient{cc} } func (c *cloudBuildClient) CreateBuild(ctx context.Context, in *CreateBuildRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/CreateBuild", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) GetBuild(ctx context.Context, in *GetBuildRequest, opts ...grpc.CallOption) (*Build, error) { out := new(Build) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/GetBuild", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) ListBuilds(ctx context.Context, in *ListBuildsRequest, opts ...grpc.CallOption) (*ListBuildsResponse, error) { out := new(ListBuildsResponse) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/ListBuilds", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) CancelBuild(ctx context.Context, in *CancelBuildRequest, opts ...grpc.CallOption) (*Build, error) { out := new(Build) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/CancelBuild", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) RetryBuild(ctx context.Context, in *RetryBuildRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/RetryBuild", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) CreateBuildTrigger(ctx context.Context, in *CreateBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) { out := new(BuildTrigger) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/CreateBuildTrigger", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) GetBuildTrigger(ctx context.Context, in *GetBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) { out := new(BuildTrigger) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/GetBuildTrigger", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) ListBuildTriggers(ctx context.Context, in *ListBuildTriggersRequest, opts ...grpc.CallOption) (*ListBuildTriggersResponse, error) { out := new(ListBuildTriggersResponse) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/ListBuildTriggers", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) DeleteBuildTrigger(ctx context.Context, in *DeleteBuildTriggerRequest, opts ...grpc.CallOption) (*empty.Empty, error) { out := new(empty.Empty) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/DeleteBuildTrigger", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) UpdateBuildTrigger(ctx context.Context, in *UpdateBuildTriggerRequest, opts ...grpc.CallOption) (*BuildTrigger, error) { out := new(BuildTrigger) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/UpdateBuildTrigger", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) RunBuildTrigger(ctx context.Context, in *RunBuildTriggerRequest, opts ...grpc.CallOption) (*longrunning.Operation, error) { out := new(longrunning.Operation) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/RunBuildTrigger", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) CreateWorkerPool(ctx context.Context, in *CreateWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) { out := new(WorkerPool) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/CreateWorkerPool", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) GetWorkerPool(ctx context.Context, in *GetWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) { out := new(WorkerPool) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/GetWorkerPool", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) DeleteWorkerPool(ctx context.Context, in *DeleteWorkerPoolRequest, opts ...grpc.CallOption) (*empty.Empty, error) { out := new(empty.Empty) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/DeleteWorkerPool", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) UpdateWorkerPool(ctx context.Context, in *UpdateWorkerPoolRequest, opts ...grpc.CallOption) (*WorkerPool, error) { out := new(WorkerPool) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/UpdateWorkerPool", in, out, opts...) if err != nil { return nil, err } return out, nil } func (c *cloudBuildClient) ListWorkerPools(ctx context.Context, in *ListWorkerPoolsRequest, opts ...grpc.CallOption) (*ListWorkerPoolsResponse, error) { out := new(ListWorkerPoolsResponse) err := c.cc.Invoke(ctx, "/google.devtools.cloudbuild.v1.CloudBuild/ListWorkerPools", in, out, opts...) if err != nil { return nil, err } return out, nil } // CloudBuildServer is the server API for CloudBuild service. type CloudBuildServer interface { // Starts a build with the specified configuration. // // This method returns a long-running `Operation`, which includes the build // ID. Pass the build ID to `GetBuild` to determine the build status (such as // `SUCCESS` or `FAILURE`). CreateBuild(context.Context, *CreateBuildRequest) (*longrunning.Operation, error) // Returns information about a previously requested build. // // The `Build` that is returned includes its status (such as `SUCCESS`, // `FAILURE`, or `WORKING`), and timing information. GetBuild(context.Context, *GetBuildRequest) (*Build, error) // Lists previously requested builds. // // Previously requested builds may still be in-progress, or may have finished // successfully or unsuccessfully. ListBuilds(context.Context, *ListBuildsRequest) (*ListBuildsResponse, error) // Cancels a build in progress. CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) // Creates a new build based on the specified build. // // This method creates a new build using the original build request, which may // or may not result in an identical build. // // For triggered builds: // // * Triggered builds resolve to a precise revision; therefore a retry of a // triggered build will result in a build that uses the same revision. // // For non-triggered builds that specify `RepoSource`: // // * If the original build built from the tip of a branch, the retried build // will build from the tip of that branch, which may not be the same revision // as the original build. // * If the original build specified a commit sha or revision ID, the retried // build will use the identical source. // // For builds that specify `StorageSource`: // // * If the original build pulled source from Google Cloud Storage without // specifying the generation of the object, the new build will use the current // object, which may be different from the original build source. // * If the original build pulled source from Cloud Storage and specified the // generation of the object, the new build will attempt to use the same // object, which may or may not be available depending on the bucket's // lifecycle management settings. RetryBuild(context.Context, *RetryBuildRequest) (*longrunning.Operation, error) // Creates a new `BuildTrigger`. // // This API is experimental. CreateBuildTrigger(context.Context, *CreateBuildTriggerRequest) (*BuildTrigger, error) // Returns information about a `BuildTrigger`. // // This API is experimental. GetBuildTrigger(context.Context, *GetBuildTriggerRequest) (*BuildTrigger, error) // Lists existing `BuildTrigger`s. // // This API is experimental. ListBuildTriggers(context.Context, *ListBuildTriggersRequest) (*ListBuildTriggersResponse, error) // Deletes a `BuildTrigger` by its project ID and trigger ID. // // This API is experimental. DeleteBuildTrigger(context.Context, *DeleteBuildTriggerRequest) (*empty.Empty, error) // Updates a `BuildTrigger` by its project ID and trigger ID. // // This API is experimental. UpdateBuildTrigger(context.Context, *UpdateBuildTriggerRequest) (*BuildTrigger, error) // Runs a `BuildTrigger` at a particular source revision. RunBuildTrigger(context.Context, *RunBuildTriggerRequest) (*longrunning.Operation, error) // Creates a `WorkerPool` to run the builds, and returns the new worker pool. // // This API is experimental. CreateWorkerPool(context.Context, *CreateWorkerPoolRequest) (*WorkerPool, error) // Returns information about a `WorkerPool`. // // This API is experimental. GetWorkerPool(context.Context, *GetWorkerPoolRequest) (*WorkerPool, error) // Deletes a `WorkerPool` by its project ID and WorkerPool name. // // This API is experimental. DeleteWorkerPool(context.Context, *DeleteWorkerPoolRequest) (*empty.Empty, error) // Update a `WorkerPool`. // // This API is experimental. UpdateWorkerPool(context.Context, *UpdateWorkerPoolRequest) (*WorkerPool, error) // List project's `WorkerPool`s. // // This API is experimental. ListWorkerPools(context.Context, *ListWorkerPoolsRequest) (*ListWorkerPoolsResponse, error) } // UnimplementedCloudBuildServer can be embedded to have forward compatible implementations. type UnimplementedCloudBuildServer struct { } func (*UnimplementedCloudBuildServer) CreateBuild(context.Context, *CreateBuildRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateBuild not implemented") } func (*UnimplementedCloudBuildServer) GetBuild(context.Context, *GetBuildRequest) (*Build, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBuild not implemented") } func (*UnimplementedCloudBuildServer) ListBuilds(context.Context, *ListBuildsRequest) (*ListBuildsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListBuilds not implemented") } func (*UnimplementedCloudBuildServer) CancelBuild(context.Context, *CancelBuildRequest) (*Build, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelBuild not implemented") } func (*UnimplementedCloudBuildServer) RetryBuild(context.Context, *RetryBuildRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method RetryBuild not implemented") } func (*UnimplementedCloudBuildServer) CreateBuildTrigger(context.Context, *CreateBuildTriggerRequest) (*BuildTrigger, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateBuildTrigger not implemented") } func (*UnimplementedCloudBuildServer) GetBuildTrigger(context.Context, *GetBuildTriggerRequest) (*BuildTrigger, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBuildTrigger not implemented") } func (*UnimplementedCloudBuildServer) ListBuildTriggers(context.Context, *ListBuildTriggersRequest) (*ListBuildTriggersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListBuildTriggers not implemented") } func (*UnimplementedCloudBuildServer) DeleteBuildTrigger(context.Context, *DeleteBuildTriggerRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteBuildTrigger not implemented") } func (*UnimplementedCloudBuildServer) UpdateBuildTrigger(context.Context, *UpdateBuildTriggerRequest) (*BuildTrigger, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateBuildTrigger not implemented") } func (*UnimplementedCloudBuildServer) RunBuildTrigger(context.Context, *RunBuildTriggerRequest) (*longrunning.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method RunBuildTrigger not implemented") } func (*UnimplementedCloudBuildServer) CreateWorkerPool(context.Context, *CreateWorkerPoolRequest) (*WorkerPool, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateWorkerPool not implemented") } func (*UnimplementedCloudBuildServer) GetWorkerPool(context.Context, *GetWorkerPoolRequest) (*WorkerPool, error) { return nil, status.Errorf(codes.Unimplemented, "method GetWorkerPool not implemented") } func (*UnimplementedCloudBuildServer) DeleteWorkerPool(context.Context, *DeleteWorkerPoolRequest) (*empty.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteWorkerPool not implemented") } func (*UnimplementedCloudBuildServer) UpdateWorkerPool(context.Context, *UpdateWorkerPoolRequest) (*WorkerPool, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateWorkerPool not implemented") } func (*UnimplementedCloudBuildServer) ListWorkerPools(context.Context, *ListWorkerPoolsRequest) (*ListWorkerPoolsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListWorkerPools not implemented") } func RegisterCloudBuildServer(s *grpc.Server, srv CloudBuildServer) { s.RegisterService(&_CloudBuild_serviceDesc, srv) } func _CloudBuild_CreateBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateBuildRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).CreateBuild(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/CreateBuild", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).CreateBuild(ctx, req.(*CreateBuildRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_GetBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetBuildRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).GetBuild(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/GetBuild", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).GetBuild(ctx, req.(*GetBuildRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_ListBuilds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListBuildsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).ListBuilds(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/ListBuilds", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).ListBuilds(ctx, req.(*ListBuildsRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_CancelBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelBuildRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).CancelBuild(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/CancelBuild", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).CancelBuild(ctx, req.(*CancelBuildRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_RetryBuild_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RetryBuildRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).RetryBuild(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/RetryBuild", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).RetryBuild(ctx, req.(*RetryBuildRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_CreateBuildTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateBuildTriggerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).CreateBuildTrigger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/CreateBuildTrigger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).CreateBuildTrigger(ctx, req.(*CreateBuildTriggerRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_GetBuildTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetBuildTriggerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).GetBuildTrigger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/GetBuildTrigger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).GetBuildTrigger(ctx, req.(*GetBuildTriggerRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_ListBuildTriggers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListBuildTriggersRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).ListBuildTriggers(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/ListBuildTriggers", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).ListBuildTriggers(ctx, req.(*ListBuildTriggersRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_DeleteBuildTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteBuildTriggerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).DeleteBuildTrigger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/DeleteBuildTrigger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).DeleteBuildTrigger(ctx, req.(*DeleteBuildTriggerRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_UpdateBuildTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateBuildTriggerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).UpdateBuildTrigger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/UpdateBuildTrigger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).UpdateBuildTrigger(ctx, req.(*UpdateBuildTriggerRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_RunBuildTrigger_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(RunBuildTriggerRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).RunBuildTrigger(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/RunBuildTrigger", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).RunBuildTrigger(ctx, req.(*RunBuildTriggerRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_CreateWorkerPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateWorkerPoolRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).CreateWorkerPool(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/CreateWorkerPool", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).CreateWorkerPool(ctx, req.(*CreateWorkerPoolRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_GetWorkerPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetWorkerPoolRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).GetWorkerPool(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/GetWorkerPool", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).GetWorkerPool(ctx, req.(*GetWorkerPoolRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_DeleteWorkerPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteWorkerPoolRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).DeleteWorkerPool(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/DeleteWorkerPool", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).DeleteWorkerPool(ctx, req.(*DeleteWorkerPoolRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_UpdateWorkerPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UpdateWorkerPoolRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).UpdateWorkerPool(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/UpdateWorkerPool", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).UpdateWorkerPool(ctx, req.(*UpdateWorkerPoolRequest)) } return interceptor(ctx, in, info, handler) } func _CloudBuild_ListWorkerPools_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ListWorkerPoolsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { return srv.(CloudBuildServer).ListWorkerPools(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, FullMethod: "/google.devtools.cloudbuild.v1.CloudBuild/ListWorkerPools", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(CloudBuildServer).ListWorkerPools(ctx, req.(*ListWorkerPoolsRequest)) } return interceptor(ctx, in, info, handler) } var _CloudBuild_serviceDesc = grpc.ServiceDesc{ ServiceName: "google.devtools.cloudbuild.v1.CloudBuild", HandlerType: (*CloudBuildServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "CreateBuild", Handler: _CloudBuild_CreateBuild_Handler, }, { MethodName: "GetBuild", Handler: _CloudBuild_GetBuild_Handler, }, { MethodName: "ListBuilds", Handler: _CloudBuild_ListBuilds_Handler, }, { MethodName: "CancelBuild", Handler: _CloudBuild_CancelBuild_Handler, }, { MethodName: "RetryBuild", Handler: _CloudBuild_RetryBuild_Handler, }, { MethodName: "CreateBuildTrigger", Handler: _CloudBuild_CreateBuildTrigger_Handler, }, { MethodName: "GetBuildTrigger", Handler: _CloudBuild_GetBuildTrigger_Handler, }, { MethodName: "ListBuildTriggers", Handler: _CloudBuild_ListBuildTriggers_Handler, }, { MethodName: "DeleteBuildTrigger", Handler: _CloudBuild_DeleteBuildTrigger_Handler, }, { MethodName: "UpdateBuildTrigger", Handler: _CloudBuild_UpdateBuildTrigger_Handler, }, { MethodName: "RunBuildTrigger", Handler: _CloudBuild_RunBuildTrigger_Handler, }, { MethodName: "CreateWorkerPool", Handler: _CloudBuild_CreateWorkerPool_Handler, }, { MethodName: "GetWorkerPool", Handler: _CloudBuild_GetWorkerPool_Handler, }, { MethodName: "DeleteWorkerPool", Handler: _CloudBuild_DeleteWorkerPool_Handler, }, { MethodName: "UpdateWorkerPool", Handler: _CloudBuild_UpdateWorkerPool_Handler, }, { MethodName: "ListWorkerPools", Handler: _CloudBuild_ListWorkerPools_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "google/devtools/cloudbuild/v1/cloudbuild.proto", }