diff --git a/.librarian/state.yaml b/.librarian/state.yaml index 50318f4b5744..60a7130a0261 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -6572,6 +6572,29 @@ libraries: release_exclude_paths: - internal/generated/snippets/workflows/ tag_format: '{id}/v{version}' + - id: workloadmanager + version: 0.0.0 + last_generated_commit: 055f92c9384689eb0bb32d035d3bc6d98c8347c0 + apis: + - path: google/cloud/workloadmanager/v1 + service_config: workloadmanager_v1.yaml + source_roots: + - workloadmanager + - internal/generated/snippets/workloadmanager + preserve_regex: [] + remove_regex: + - ^internal/generated/snippets/workloadmanager/ + - ^workloadmanager/apiv1/[^/]*_client\.go$ + - ^workloadmanager/apiv1/[^/]*_client_example_go123_test\.go$ + - ^workloadmanager/apiv1/[^/]*_client_example_test\.go$ + - ^workloadmanager/apiv1/auxiliary\.go$ + - ^workloadmanager/apiv1/auxiliary_go123\.go$ + - ^workloadmanager/apiv1/doc\.go$ + - ^workloadmanager/apiv1/gapic_metadata\.json$ + - ^workloadmanager/apiv1/helpers\.go$ + - ^workloadmanager/apiv1/\.repo-metadata\.json$ + - ^workloadmanager/apiv1/workloadmanagerpb/.*$ + tag_format: '{id}/v{version}' - id: workstations version: 1.1.6 last_generated_commit: c288189b43c016dd3cf1ec73ce3cadee8b732f07 diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index 994a662a6f81..fa2804f467db 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -189,6 +189,7 @@ require ( cloud.google.com/go/telcoautomation v0.0.0-00010101000000-000000000000 cloud.google.com/go/vectorsearch v0.0.0-00010101000000-000000000000 cloud.google.com/go/visionai v0.0.0-00010101000000-000000000000 + cloud.google.com/go/workloadmanager v0.0.0-00010101000000-000000000000 google.golang.org/protobuf v1.36.11 ) @@ -219,7 +220,7 @@ require ( golang.org/x/time v0.14.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect - google.golang.org/grpc v1.78.0 // indirect + google.golang.org/grpc v1.79.1 // indirect ) replace cloud.google.com/go/storageinsights => ../../../storageinsights @@ -593,3 +594,5 @@ replace cloud.google.com/go/cloudsecuritycompliance => ../../../cloudsecuritycom replace cloud.google.com/go/auditmanager => ../../../auditmanager replace cloud.google.com/go/datamanager => ../../../datamanager + +replace cloud.google.com/go/workloadmanager => ../../../workloadmanager diff --git a/internal/generated/snippets/go.sum b/internal/generated/snippets/go.sum index e3313c28732d..2686005a7777 100644 --- a/internal/generated/snippets/go.sum +++ b/internal/generated/snippets/go.sum @@ -4,15 +4,15 @@ cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIi cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f h1:Y8xYupdHxryycyPlc9Y+bSQAYZnetRJ70VMVKm5CKI0= -github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f/go.mod h1:HlzOvOjVBOfTGSRXRyY0OiCS/3J1akRGQQpRO/7zyF4= +github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w= +github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.13.5-0.20251024222203-75eaa193e329 h1:K+fnvUM0VZ7ZFJf0n4L/BRlnsb9pL/GuDG6FqaH+PwM= -github.com/envoyproxy/go-control-plane/envoy v1.35.0 h1:ixjkELDE+ru6idPxcHLj8LBVc2bFP7iBytj353BoHUo= -github.com/envoyproxy/go-control-plane/envoy v1.35.0/go.mod h1:09qwbGVuSWWAyN5t/b3iyVfz5+z8QWGrzkoqm/8SbEs= -github.com/envoyproxy/protoc-gen-validate v1.2.1 h1:DEo3O99U8j4hBFwbJfrz9VtgcDfUKS7KJ7spH3d86P8= -github.com/envoyproxy/protoc-gen-validate v1.2.1/go.mod h1:d/C80l/jxXLdfEIhX1W2TmLfsJ31lvEjwamM4DxlWXU= +github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA= +github.com/envoyproxy/go-control-plane/envoy v1.36.0 h1:yg/JjO5E7ubRyKX3m07GF3reDNEnfOboJ0QySbH736g= +github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98= +github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4= +github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= @@ -78,8 +78,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1: google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE= google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= -google.golang.org/grpc v1.78.0 h1:K1XZG/yGDJnzMdd/uZHAkVqJE+xIDOcmdSFZkBUicNc= -google.golang.org/grpc v1.78.0/go.mod h1:I47qjTo4OKbMkjA/aOOwxDIiPSBofUtQUI5EfpWvW7U= +google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= +google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/CancelOperation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/CancelOperation/main.go new file mode 100644 index 000000000000..89a9973b03cf --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_CancelOperation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/CreateEvaluation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/CreateEvaluation/main.go new file mode 100644 index 000000000000..0c8ade0effc9 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/CreateEvaluation/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_CreateEvaluation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.CreateEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#CreateEvaluationRequest. + } + op, err := c.CreateEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_CreateEvaluation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteEvaluation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteEvaluation/main.go new file mode 100644 index 000000000000..67665f5af0e7 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteEvaluation/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_DeleteEvaluation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.DeleteEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#DeleteEvaluationRequest. + } + op, err := c.DeleteEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_DeleteEvaluation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteExecution/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteExecution/main.go new file mode 100644 index 000000000000..60274fb846f2 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteExecution/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_DeleteExecution_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.DeleteExecutionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#DeleteExecutionRequest. + } + op, err := c.DeleteExecution(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_DeleteExecution_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteOperation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteOperation/main.go new file mode 100644 index 000000000000..62ee4e0867f7 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_DeleteOperation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/GetEvaluation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/GetEvaluation/main.go new file mode 100644 index 000000000000..ce56ff9e9dd0 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/GetEvaluation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_GetEvaluation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.GetEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#GetEvaluationRequest. + } + resp, err := c.GetEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_GetEvaluation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/GetExecution/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/GetExecution/main.go new file mode 100644 index 000000000000..699dd0f27fa8 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/GetExecution/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_GetExecution_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.GetExecutionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#GetExecutionRequest. + } + resp, err := c.GetExecution(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_GetExecution_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/GetLocation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/GetLocation/main.go new file mode 100644 index 000000000000..f7603a2015f2 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_GetLocation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_GetLocation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/GetOperation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/GetOperation/main.go new file mode 100644 index 000000000000..664ad43edc26 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_GetOperation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListEvaluations/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListEvaluations/main.go new file mode 100644 index 000000000000..b9ba694b3013 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListEvaluations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListEvaluations_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListEvaluationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListEvaluationsRequest. + } + it := c.ListEvaluations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListEvaluationsResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListEvaluations_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutionResults/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutionResults/main.go new file mode 100644 index 000000000000..86da5ec9d8ec --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutionResults/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListExecutionResults_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionResultsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionResultsRequest. + } + it := c.ListExecutionResults(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListExecutionResultsResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListExecutionResults_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutions/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutions/main.go new file mode 100644 index 000000000000..75582ba3990d --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListExecutions/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListExecutions_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionsRequest. + } + it := c.ListExecutions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListExecutionsResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListExecutions_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListLocations/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListLocations/main.go new file mode 100644 index 000000000000..3c2f78c8c862 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListLocations_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListLocations_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListOperations/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListOperations/main.go new file mode 100644 index 000000000000..47e40869c9e9 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListOperations_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListRules/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListRules/main.go new file mode 100644 index 000000000000..9860de9e1eb8 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListRules/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListRules_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListRulesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListRulesRequest. + } + resp, err := c.ListRules(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListRules_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/ListScannedResources/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/ListScannedResources/main.go new file mode 100644 index 000000000000..081673430929 --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/ListScannedResources/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_ListScannedResources_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListScannedResourcesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListScannedResourcesRequest. + } + it := c.ListScannedResources(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListScannedResourcesResponse) + } +} + +// [END workloadmanager_v1_generated_WorkloadManager_ListScannedResources_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/RunEvaluation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/RunEvaluation/main.go new file mode 100644 index 000000000000..9ab3882777df --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/RunEvaluation/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_RunEvaluation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.RunEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#RunEvaluationRequest. + } + op, err := c.RunEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_RunEvaluation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/Client/UpdateEvaluation/main.go b/internal/generated/snippets/workloadmanager/apiv1/Client/UpdateEvaluation/main.go new file mode 100644 index 000000000000..390ea9fb950a --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/Client/UpdateEvaluation/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// [START workloadmanager_v1_generated_WorkloadManager_UpdateEvaluation_sync] + +package main + +import ( + "context" + + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.UpdateEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#UpdateEvaluationRequest. + } + op, err := c.UpdateEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END workloadmanager_v1_generated_WorkloadManager_UpdateEvaluation_sync] diff --git a/internal/generated/snippets/workloadmanager/apiv1/snippet_metadata.google.cloud.workloadmanager.v1.json b/internal/generated/snippets/workloadmanager/apiv1/snippet_metadata.google.cloud.workloadmanager.v1.json new file mode 100644 index 000000000000..80a13bfcce6e --- /dev/null +++ b/internal/generated/snippets/workloadmanager/apiv1/snippet_metadata.google.cloud.workloadmanager.v1.json @@ -0,0 +1,841 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/workloadmanager/apiv1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.workloadmanager.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_CancelOperation_sync", + "title": "workloadmanager CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "Client/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.workloadmanager.v1.Client.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_CreateEvaluation_sync", + "title": "workloadmanager CreateEvaluation Sample", + "description": "CreateEvaluation creates a new Evaluation in a given project and location.", + "file": "Client/CreateEvaluation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateEvaluation", + "fullName": "google.cloud.workloadmanager.v1.Client.CreateEvaluation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.CreateEvaluationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateEvaluationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "CreateEvaluation", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.CreateEvaluation", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_DeleteEvaluation_sync", + "title": "workloadmanager DeleteEvaluation Sample", + "description": "DeleteEvaluation deletes a single Evaluation.", + "file": "Client/DeleteEvaluation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteEvaluation", + "fullName": "google.cloud.workloadmanager.v1.Client.DeleteEvaluation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.DeleteEvaluationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteEvaluationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "DeleteEvaluation", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.DeleteEvaluation", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_DeleteExecution_sync", + "title": "workloadmanager DeleteExecution Sample", + "description": "DeleteExecution deletes a single Execution.", + "file": "Client/DeleteExecution/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteExecution", + "fullName": "google.cloud.workloadmanager.v1.Client.DeleteExecution", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.DeleteExecutionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteExecutionOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "DeleteExecution", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.DeleteExecution", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_DeleteOperation_sync", + "title": "workloadmanager DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "Client/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.workloadmanager.v1.Client.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_GetEvaluation_sync", + "title": "workloadmanager GetEvaluation Sample", + "description": "GetEvaluation gets details of a single Evaluation.", + "file": "Client/GetEvaluation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetEvaluation", + "fullName": "google.cloud.workloadmanager.v1.Client.GetEvaluation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.GetEvaluationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*workloadmanagerpb.Evaluation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "GetEvaluation", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.GetEvaluation", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_GetExecution_sync", + "title": "workloadmanager GetExecution Sample", + "description": "GetExecution gets details of a single Execution.", + "file": "Client/GetExecution/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetExecution", + "fullName": "google.cloud.workloadmanager.v1.Client.GetExecution", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.GetExecutionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*workloadmanagerpb.Execution", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "GetExecution", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.GetExecution", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_GetLocation_sync", + "title": "workloadmanager GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "Client/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.workloadmanager.v1.Client.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_GetOperation_sync", + "title": "workloadmanager GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "Client/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.workloadmanager.v1.Client.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListEvaluations_sync", + "title": "workloadmanager ListEvaluations Sample", + "description": "ListEvaluations lists Evaluations in a given project and location.", + "file": "Client/ListEvaluations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListEvaluations", + "fullName": "google.cloud.workloadmanager.v1.Client.ListEvaluations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.ListEvaluationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "EvaluationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListEvaluations", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.ListEvaluations", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListExecutionResults_sync", + "title": "workloadmanager ListExecutionResults Sample", + "description": "ListExecutionResults lists the result of a single evaluation.", + "file": "Client/ListExecutionResults/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListExecutionResults", + "fullName": "google.cloud.workloadmanager.v1.Client.ListExecutionResults", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.ListExecutionResultsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ExecutionResultIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListExecutionResults", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.ListExecutionResults", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListExecutions_sync", + "title": "workloadmanager ListExecutions Sample", + "description": "ListExecutions lists Executions in a given project and location.", + "file": "Client/ListExecutions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListExecutions", + "fullName": "google.cloud.workloadmanager.v1.Client.ListExecutions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.ListExecutionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ExecutionIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListExecutions", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.ListExecutions", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListLocations_sync", + "title": "workloadmanager ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "Client/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.workloadmanager.v1.Client.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListOperations_sync", + "title": "workloadmanager ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "Client/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.workloadmanager.v1.Client.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListRules_sync", + "title": "workloadmanager ListRules Sample", + "description": "ListRules lists rules in a given project.", + "file": "Client/ListRules/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRules", + "fullName": "google.cloud.workloadmanager.v1.Client.ListRules", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.ListRulesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*workloadmanagerpb.ListRulesResponse", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListRules", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.ListRules", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_ListScannedResources_sync", + "title": "workloadmanager ListScannedResources Sample", + "description": "ListScannedResources list all scanned resources for a single Execution.", + "file": "Client/ListScannedResources/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListScannedResources", + "fullName": "google.cloud.workloadmanager.v1.Client.ListScannedResources", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.ListScannedResourcesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ScannedResourceIterator", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "ListScannedResources", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.ListScannedResources", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_RunEvaluation_sync", + "title": "workloadmanager RunEvaluation Sample", + "description": "RunEvaluation creates a new Execution in a given project and location.", + "file": "Client/RunEvaluation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RunEvaluation", + "fullName": "google.cloud.workloadmanager.v1.Client.RunEvaluation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.RunEvaluationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RunEvaluationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "RunEvaluation", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.RunEvaluation", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "workloadmanager_v1_generated_WorkloadManager_UpdateEvaluation_sync", + "title": "workloadmanager UpdateEvaluation Sample", + "description": "UpdateEvaluation updates the parameters of a single Evaluation.", + "file": "Client/UpdateEvaluation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateEvaluation", + "fullName": "google.cloud.workloadmanager.v1.Client.UpdateEvaluation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "workloadmanagerpb.UpdateEvaluationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateEvaluationOperation", + "client": { + "shortName": "Client", + "fullName": "google.cloud.workloadmanager.v1.Client" + }, + "method": { + "shortName": "UpdateEvaluation", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager.UpdateEvaluation", + "service": { + "shortName": "WorkloadManager", + "fullName": "google.cloud.workloadmanager.v1.WorkloadManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/workloadmanager/CHANGES.md b/workloadmanager/CHANGES.md new file mode 100644 index 000000000000..b671f0bbcdd2 --- /dev/null +++ b/workloadmanager/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/workloadmanager/README.md b/workloadmanager/README.md new file mode 100644 index 000000000000..b47022d5170f --- /dev/null +++ b/workloadmanager/README.md @@ -0,0 +1,55 @@ +# Workload Manager API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/workloadmanager.svg)](https://pkg.go.dev/cloud.google.com/go/workloadmanager) + +Go Client Library for Workload Manager API. + +## Install + +```bash +go get cloud.google.com/go/workloadmanager +``` + +## Stability + +The stability of this module is indicated by SemVer. + +However, a `v1+` module may have breaking changes in two scenarios: + +* Packages with `alpha` or `beta` in the import path +* The GoDoc has an explicit stability disclaimer (for example, for an experimental feature). + +### Which package to use? + +Generated client library surfaces can be found in packages whose import path +ends in `.../apivXXX`. The `XXX` could be something like `1` or `2` in the case +of a stable service backend or may be like `1beta2` or `2beta` in the case of a +more experimental service backend. Because of this fact, a given module can have +multiple clients for different service backends. In these cases it is generally +recommended to use clients with stable service backends, with import suffixes like +`apiv1`, unless you need to use features that are only present in a beta backend +or there is not yet a stable backend available. + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples?l=go). + +## Go Version Support + +See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported) +section in the root directory's README. + +## Authorization + +See the [Authorization](https://github.com/googleapis/google-cloud-go#authorization) +section in the root directory's README. + +## Contributing + +Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. See +[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/workloadmanager/apiv1/.repo-metadata.json b/workloadmanager/apiv1/.repo-metadata.json new file mode 100644 index 000000000000..deddc877fb81 --- /dev/null +++ b/workloadmanager/apiv1/.repo-metadata.json @@ -0,0 +1,10 @@ +{ + "api_shortname": "workloadmanager", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/workloadmanager/latest/apiv1", + "client_library_type": "generated", + "description": "Workload Manager API", + "distribution_name": "cloud.google.com/go/workloadmanager/apiv1", + "language": "go", + "library_type": "GAPIC_AUTO", + "release_level": "preview" +} diff --git a/workloadmanager/apiv1/auxiliary.go b/workloadmanager/apiv1/auxiliary.go new file mode 100644 index 000000000000..a1b6d2e49682 --- /dev/null +++ b/workloadmanager/apiv1/auxiliary.go @@ -0,0 +1,609 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +package workloadmanager + +import ( + "context" + "time" + + "cloud.google.com/go/longrunning" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// CreateEvaluationOperation manages a long-running operation from CreateEvaluation. +type CreateEvaluationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateEvaluationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Evaluation + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateEvaluationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Evaluation + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateEvaluationOperation) Metadata() (*workloadmanagerpb.OperationMetadata, error) { + var meta workloadmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateEvaluationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateEvaluationOperation) Name() string { + return op.lro.Name() +} + +// DeleteEvaluationOperation manages a long-running operation from DeleteEvaluation. +type DeleteEvaluationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteEvaluationOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteEvaluationOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteEvaluationOperation) Metadata() (*workloadmanagerpb.OperationMetadata, error) { + var meta workloadmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteEvaluationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteEvaluationOperation) Name() string { + return op.lro.Name() +} + +// DeleteExecutionOperation manages a long-running operation from DeleteExecution. +type DeleteExecutionOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteExecutionOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteExecutionOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteExecutionOperation) Metadata() (*workloadmanagerpb.OperationMetadata, error) { + var meta workloadmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteExecutionOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteExecutionOperation) Name() string { + return op.lro.Name() +} + +// RunEvaluationOperation manages a long-running operation from RunEvaluation. +type RunEvaluationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RunEvaluationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Execution, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Execution + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RunEvaluationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Execution, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Execution + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RunEvaluationOperation) Metadata() (*workloadmanagerpb.OperationMetadata, error) { + var meta workloadmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RunEvaluationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RunEvaluationOperation) Name() string { + return op.lro.Name() +} + +// UpdateEvaluationOperation manages a long-running operation from UpdateEvaluation. +type UpdateEvaluationOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateEvaluationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Evaluation + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateEvaluationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp workloadmanagerpb.Evaluation + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateEvaluationOperation) Metadata() (*workloadmanagerpb.OperationMetadata, error) { + var meta workloadmanagerpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateEvaluationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateEvaluationOperation) Name() string { + return op.lro.Name() +} + +// EvaluationIterator manages a stream of *workloadmanagerpb.Evaluation. +type EvaluationIterator struct { + items []*workloadmanagerpb.Evaluation + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*workloadmanagerpb.Evaluation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *EvaluationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *EvaluationIterator) Next() (*workloadmanagerpb.Evaluation, error) { + var item *workloadmanagerpb.Evaluation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *EvaluationIterator) bufLen() int { + return len(it.items) +} + +func (it *EvaluationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ExecutionIterator manages a stream of *workloadmanagerpb.Execution. +type ExecutionIterator struct { + items []*workloadmanagerpb.Execution + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*workloadmanagerpb.Execution, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ExecutionIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ExecutionIterator) Next() (*workloadmanagerpb.Execution, error) { + var item *workloadmanagerpb.Execution + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ExecutionIterator) bufLen() int { + return len(it.items) +} + +func (it *ExecutionIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ExecutionResultIterator manages a stream of *workloadmanagerpb.ExecutionResult. +type ExecutionResultIterator struct { + items []*workloadmanagerpb.ExecutionResult + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*workloadmanagerpb.ExecutionResult, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ExecutionResultIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ExecutionResultIterator) Next() (*workloadmanagerpb.ExecutionResult, error) { + var item *workloadmanagerpb.ExecutionResult + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ExecutionResultIterator) bufLen() int { + return len(it.items) +} + +func (it *ExecutionResultIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// LocationIterator manages a stream of *locationpb.Location. +type LocationIterator struct { + items []*locationpb.Location + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*locationpb.Location, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *LocationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *LocationIterator) Next() (*locationpb.Location, error) { + var item *locationpb.Location + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *LocationIterator) bufLen() int { + return len(it.items) +} + +func (it *LocationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// OperationIterator manages a stream of *longrunningpb.Operation. +type OperationIterator struct { + items []*longrunningpb.Operation + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*longrunningpb.Operation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *OperationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *OperationIterator) Next() (*longrunningpb.Operation, error) { + var item *longrunningpb.Operation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OperationIterator) bufLen() int { + return len(it.items) +} + +func (it *OperationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ScannedResourceIterator manages a stream of *workloadmanagerpb.ScannedResource. +type ScannedResourceIterator struct { + items []*workloadmanagerpb.ScannedResource + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*workloadmanagerpb.ScannedResource, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ScannedResourceIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *ScannedResourceIterator) Next() (*workloadmanagerpb.ScannedResource, error) { + var item *workloadmanagerpb.ScannedResource + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ScannedResourceIterator) bufLen() int { + return len(it.items) +} + +func (it *ScannedResourceIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/workloadmanager/apiv1/auxiliary_go123.go b/workloadmanager/apiv1/auxiliary_go123.go new file mode 100644 index 000000000000..1ecfd65cb4d7 --- /dev/null +++ b/workloadmanager/apiv1/auxiliary_go123.go @@ -0,0 +1,64 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +//go:build go1.23 + +package workloadmanager + +import ( + "iter" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "github.com/googleapis/gax-go/v2/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *EvaluationIterator) All() iter.Seq2[*workloadmanagerpb.Evaluation, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *ExecutionIterator) All() iter.Seq2[*workloadmanagerpb.Execution, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *ExecutionResultIterator) All() iter.Seq2[*workloadmanagerpb.ExecutionResult, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *LocationIterator) All() iter.Seq2[*locationpb.Location, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *OperationIterator) All() iter.Seq2[*longrunningpb.Operation, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *ScannedResourceIterator) All() iter.Seq2[*workloadmanagerpb.ScannedResource, error] { + return iterator.RangeAdapter(it.Next) +} diff --git a/workloadmanager/apiv1/doc.go b/workloadmanager/apiv1/doc.go new file mode 100644 index 000000000000..e0d094535a52 --- /dev/null +++ b/workloadmanager/apiv1/doc.go @@ -0,0 +1,92 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +// Package workloadmanager is an auto-generated package for the +// Workload Manager API. +// +// Workload Manager is a service that provides tooling for enterprise +// workloads to automate the deployment and validation of your workloads +// against best practices and recommendations. +// +// NOTE: This package is in beta. It is not stable, and may be subject to changes. +// +// # General documentation +// +// For information that is relevant for all client libraries please reference +// https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this +// page includes: +// +// - [Authentication and Authorization] +// - [Timeouts and Cancellation] +// - [Testing against Client Libraries] +// - [Debugging Client Libraries] +// - [Inspecting errors] +// +// # Example usage +// +// To get started with this package, create a client. +// +// // go get cloud.google.com/go/workloadmanager/apiv1@latest +// ctx := context.Background() +// // This snippet has been automatically generated and should be regarded as a code template only. +// // It will require modifications to work: +// // - It may require correct/in-range values for request initialization. +// // - It may require specifying regional endpoints when creating the service client as shown in: +// // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options +// c, err := workloadmanager.NewClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client, mentioned above. +// +// req := &workloadmanagerpb.CreateEvaluationRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#CreateEvaluationRequest. +// } +// op, err := c.CreateEvaluation(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// +// resp, err := op.Wait(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Use of Context +// +// The ctx passed to NewClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +// +// [Authentication and Authorization]: https://pkg.go.dev/cloud.google.com/go#hdr-Authentication_and_Authorization +// [Timeouts and Cancellation]: https://pkg.go.dev/cloud.google.com/go#hdr-Timeouts_and_Cancellation +// [Testing against Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Testing +// [Debugging Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Debugging +// [Inspecting errors]: https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors +package workloadmanager // import "cloud.google.com/go/workloadmanager/apiv1" diff --git a/workloadmanager/apiv1/gapic_metadata.json b/workloadmanager/apiv1/gapic_metadata.json new file mode 100644 index 000000000000..624fe9ddd5d2 --- /dev/null +++ b/workloadmanager/apiv1/gapic_metadata.json @@ -0,0 +1,203 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.workloadmanager.v1", + "libraryPackage": "cloud.google.com/go/workloadmanager/apiv1", + "services": { + "WorkloadManager": { + "clients": { + "grpc": { + "libraryClient": "Client", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateEvaluation": { + "methods": [ + "CreateEvaluation" + ] + }, + "DeleteEvaluation": { + "methods": [ + "DeleteEvaluation" + ] + }, + "DeleteExecution": { + "methods": [ + "DeleteExecution" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetEvaluation": { + "methods": [ + "GetEvaluation" + ] + }, + "GetExecution": { + "methods": [ + "GetExecution" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListEvaluations": { + "methods": [ + "ListEvaluations" + ] + }, + "ListExecutionResults": { + "methods": [ + "ListExecutionResults" + ] + }, + "ListExecutions": { + "methods": [ + "ListExecutions" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListRules": { + "methods": [ + "ListRules" + ] + }, + "ListScannedResources": { + "methods": [ + "ListScannedResources" + ] + }, + "RunEvaluation": { + "methods": [ + "RunEvaluation" + ] + }, + "UpdateEvaluation": { + "methods": [ + "UpdateEvaluation" + ] + } + } + }, + "rest": { + "libraryClient": "Client", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateEvaluation": { + "methods": [ + "CreateEvaluation" + ] + }, + "DeleteEvaluation": { + "methods": [ + "DeleteEvaluation" + ] + }, + "DeleteExecution": { + "methods": [ + "DeleteExecution" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetEvaluation": { + "methods": [ + "GetEvaluation" + ] + }, + "GetExecution": { + "methods": [ + "GetExecution" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListEvaluations": { + "methods": [ + "ListEvaluations" + ] + }, + "ListExecutionResults": { + "methods": [ + "ListExecutionResults" + ] + }, + "ListExecutions": { + "methods": [ + "ListExecutions" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListRules": { + "methods": [ + "ListRules" + ] + }, + "ListScannedResources": { + "methods": [ + "ListScannedResources" + ] + }, + "RunEvaluation": { + "methods": [ + "RunEvaluation" + ] + }, + "UpdateEvaluation": { + "methods": [ + "UpdateEvaluation" + ] + } + } + } + } + } + } +} diff --git a/workloadmanager/apiv1/helpers.go b/workloadmanager/apiv1/helpers.go new file mode 100644 index 000000000000..491bceed6372 --- /dev/null +++ b/workloadmanager/apiv1/helpers.go @@ -0,0 +1,105 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +package workloadmanager + +import ( + "context" + "fmt" + "io" + "log/slog" + "net/http" + + "github.com/googleapis/gax-go/v2/internallog" + "github.com/googleapis/gax-go/v2/internallog/grpclog" + "google.golang.org/api/googleapi" + "google.golang.org/api/option" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/runtime/protoimpl" +) + +const serviceName = "workloadmanager.googleapis.com" + +var protoVersion = fmt.Sprintf("1.%d", protoimpl.MaxVersion) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/cloud-platform", + } +} + +func executeHTTPRequestWithResponse(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) ([]byte, *http.Response, error) { + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", internallog.HTTPRequest(req, body)) + resp, err := client.Do(req) + if err != nil { + return nil, nil, err + } + defer resp.Body.Close() + buf, err := io.ReadAll(resp.Body) + if err != nil { + return nil, nil, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", internallog.HTTPResponse(resp, buf)) + if err = googleapi.CheckResponseWithBody(resp, buf); err != nil { + return nil, nil, err + } + return buf, resp, nil +} + +func executeHTTPRequest(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) ([]byte, error) { + buf, _, err := executeHTTPRequestWithResponse(ctx, client, req, logger, body, rpc) + return buf, err +} + +func executeStreamingHTTPRequest(ctx context.Context, client *http.Client, req *http.Request, logger *slog.Logger, body []byte, rpc string) (*http.Response, error) { + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", internallog.HTTPRequest(req, body)) + resp, err := client.Do(req) + if err != nil { + return nil, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", internallog.HTTPResponse(resp, nil)) + if err = googleapi.CheckResponse(resp); err != nil { + return nil, err + } + return resp, nil +} + +func executeRPC[I proto.Message, O proto.Message](ctx context.Context, fn func(context.Context, I, ...grpc.CallOption) (O, error), req I, opts []grpc.CallOption, logger *slog.Logger, rpc string) (O, error) { + var zero O + logger.DebugContext(ctx, "api request", "serviceName", serviceName, "rpcName", rpc, "request", grpclog.ProtoMessageRequest(ctx, req)) + resp, err := fn(ctx, req, opts...) + if err != nil { + return zero, err + } + logger.DebugContext(ctx, "api response", "serviceName", serviceName, "rpcName", rpc, "response", grpclog.ProtoMessageResponse(resp)) + return resp, err +} diff --git a/workloadmanager/apiv1/version.go b/workloadmanager/apiv1/version.go new file mode 100644 index 000000000000..c16d10dff2e3 --- /dev/null +++ b/workloadmanager/apiv1/version.go @@ -0,0 +1,23 @@ +// Copyright 2026 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 gapicgen. DO NOT EDIT. + +package workloadmanager + +import "cloud.google.com/go/workloadmanager/internal" + +func init() { + versionClient = internal.Version +} diff --git a/workloadmanager/apiv1/workload_manager_client.go b/workloadmanager/apiv1/workload_manager_client.go new file mode 100644 index 000000000000..f13cc1fede8d --- /dev/null +++ b/workloadmanager/apiv1/workload_manager_client.go @@ -0,0 +1,2429 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +package workloadmanager + +import ( + "bytes" + "context" + "fmt" + "log/slog" + "math" + "net/http" + "net/url" + "time" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newClientHook clientHook + +// CallOptions contains the retry settings for each method of Client. +type CallOptions struct { + ListEvaluations []gax.CallOption + GetEvaluation []gax.CallOption + CreateEvaluation []gax.CallOption + UpdateEvaluation []gax.CallOption + DeleteEvaluation []gax.CallOption + ListExecutions []gax.CallOption + GetExecution []gax.CallOption + RunEvaluation []gax.CallOption + DeleteExecution []gax.CallOption + ListExecutionResults []gax.CallOption + ListRules []gax.CallOption + ListScannedResources []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("workloadmanager.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("workloadmanager.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("workloadmanager.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://workloadmanager.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultCallOptions() *CallOptions { + return &CallOptions{ + ListEvaluations: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListExecutions: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetExecution: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + RunEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteExecution: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListExecutionResults: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListRules: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListScannedResources: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultRESTCallOptions() *CallOptions { + return &CallOptions{ + ListEvaluations: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListExecutions: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetExecution: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + RunEvaluation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteExecution: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListExecutionResults: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListRules: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListScannedResources: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalClient is an interface that defines the methods available from Workload Manager API. +type internalClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListEvaluations(context.Context, *workloadmanagerpb.ListEvaluationsRequest, ...gax.CallOption) *EvaluationIterator + GetEvaluation(context.Context, *workloadmanagerpb.GetEvaluationRequest, ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) + CreateEvaluation(context.Context, *workloadmanagerpb.CreateEvaluationRequest, ...gax.CallOption) (*CreateEvaluationOperation, error) + CreateEvaluationOperation(name string) *CreateEvaluationOperation + UpdateEvaluation(context.Context, *workloadmanagerpb.UpdateEvaluationRequest, ...gax.CallOption) (*UpdateEvaluationOperation, error) + UpdateEvaluationOperation(name string) *UpdateEvaluationOperation + DeleteEvaluation(context.Context, *workloadmanagerpb.DeleteEvaluationRequest, ...gax.CallOption) (*DeleteEvaluationOperation, error) + DeleteEvaluationOperation(name string) *DeleteEvaluationOperation + ListExecutions(context.Context, *workloadmanagerpb.ListExecutionsRequest, ...gax.CallOption) *ExecutionIterator + GetExecution(context.Context, *workloadmanagerpb.GetExecutionRequest, ...gax.CallOption) (*workloadmanagerpb.Execution, error) + RunEvaluation(context.Context, *workloadmanagerpb.RunEvaluationRequest, ...gax.CallOption) (*RunEvaluationOperation, error) + RunEvaluationOperation(name string) *RunEvaluationOperation + DeleteExecution(context.Context, *workloadmanagerpb.DeleteExecutionRequest, ...gax.CallOption) (*DeleteExecutionOperation, error) + DeleteExecutionOperation(name string) *DeleteExecutionOperation + ListExecutionResults(context.Context, *workloadmanagerpb.ListExecutionResultsRequest, ...gax.CallOption) *ExecutionResultIterator + ListRules(context.Context, *workloadmanagerpb.ListRulesRequest, ...gax.CallOption) (*workloadmanagerpb.ListRulesResponse, error) + ListScannedResources(context.Context, *workloadmanagerpb.ListScannedResourcesRequest, ...gax.CallOption) *ScannedResourceIterator + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// Client is a client for interacting with Workload Manager API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The Workload Manager provides various tools to deploy, validate and observe +// your workloads running on Google Cloud. +type Client struct { + // The internal transport-dependent client. + internalClient internalClient + + // The call options for this service. + CallOptions *CallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *Client) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *Client) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *Client) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListEvaluations lists Evaluations in a given project and location. +func (c *Client) ListEvaluations(ctx context.Context, req *workloadmanagerpb.ListEvaluationsRequest, opts ...gax.CallOption) *EvaluationIterator { + return c.internalClient.ListEvaluations(ctx, req, opts...) +} + +// GetEvaluation gets details of a single Evaluation. +func (c *Client) GetEvaluation(ctx context.Context, req *workloadmanagerpb.GetEvaluationRequest, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + return c.internalClient.GetEvaluation(ctx, req, opts...) +} + +// CreateEvaluation creates a new Evaluation in a given project and location. +func (c *Client) CreateEvaluation(ctx context.Context, req *workloadmanagerpb.CreateEvaluationRequest, opts ...gax.CallOption) (*CreateEvaluationOperation, error) { + return c.internalClient.CreateEvaluation(ctx, req, opts...) +} + +// CreateEvaluationOperation returns a new CreateEvaluationOperation from a given name. +// The name must be that of a previously created CreateEvaluationOperation, possibly from a different process. +func (c *Client) CreateEvaluationOperation(name string) *CreateEvaluationOperation { + return c.internalClient.CreateEvaluationOperation(name) +} + +// UpdateEvaluation updates the parameters of a single Evaluation. +func (c *Client) UpdateEvaluation(ctx context.Context, req *workloadmanagerpb.UpdateEvaluationRequest, opts ...gax.CallOption) (*UpdateEvaluationOperation, error) { + return c.internalClient.UpdateEvaluation(ctx, req, opts...) +} + +// UpdateEvaluationOperation returns a new UpdateEvaluationOperation from a given name. +// The name must be that of a previously created UpdateEvaluationOperation, possibly from a different process. +func (c *Client) UpdateEvaluationOperation(name string) *UpdateEvaluationOperation { + return c.internalClient.UpdateEvaluationOperation(name) +} + +// DeleteEvaluation deletes a single Evaluation. +func (c *Client) DeleteEvaluation(ctx context.Context, req *workloadmanagerpb.DeleteEvaluationRequest, opts ...gax.CallOption) (*DeleteEvaluationOperation, error) { + return c.internalClient.DeleteEvaluation(ctx, req, opts...) +} + +// DeleteEvaluationOperation returns a new DeleteEvaluationOperation from a given name. +// The name must be that of a previously created DeleteEvaluationOperation, possibly from a different process. +func (c *Client) DeleteEvaluationOperation(name string) *DeleteEvaluationOperation { + return c.internalClient.DeleteEvaluationOperation(name) +} + +// ListExecutions lists Executions in a given project and location. +func (c *Client) ListExecutions(ctx context.Context, req *workloadmanagerpb.ListExecutionsRequest, opts ...gax.CallOption) *ExecutionIterator { + return c.internalClient.ListExecutions(ctx, req, opts...) +} + +// GetExecution gets details of a single Execution. +func (c *Client) GetExecution(ctx context.Context, req *workloadmanagerpb.GetExecutionRequest, opts ...gax.CallOption) (*workloadmanagerpb.Execution, error) { + return c.internalClient.GetExecution(ctx, req, opts...) +} + +// RunEvaluation creates a new Execution in a given project and location. +func (c *Client) RunEvaluation(ctx context.Context, req *workloadmanagerpb.RunEvaluationRequest, opts ...gax.CallOption) (*RunEvaluationOperation, error) { + return c.internalClient.RunEvaluation(ctx, req, opts...) +} + +// RunEvaluationOperation returns a new RunEvaluationOperation from a given name. +// The name must be that of a previously created RunEvaluationOperation, possibly from a different process. +func (c *Client) RunEvaluationOperation(name string) *RunEvaluationOperation { + return c.internalClient.RunEvaluationOperation(name) +} + +// DeleteExecution deletes a single Execution. +func (c *Client) DeleteExecution(ctx context.Context, req *workloadmanagerpb.DeleteExecutionRequest, opts ...gax.CallOption) (*DeleteExecutionOperation, error) { + return c.internalClient.DeleteExecution(ctx, req, opts...) +} + +// DeleteExecutionOperation returns a new DeleteExecutionOperation from a given name. +// The name must be that of a previously created DeleteExecutionOperation, possibly from a different process. +func (c *Client) DeleteExecutionOperation(name string) *DeleteExecutionOperation { + return c.internalClient.DeleteExecutionOperation(name) +} + +// ListExecutionResults lists the result of a single evaluation. +func (c *Client) ListExecutionResults(ctx context.Context, req *workloadmanagerpb.ListExecutionResultsRequest, opts ...gax.CallOption) *ExecutionResultIterator { + return c.internalClient.ListExecutionResults(ctx, req, opts...) +} + +// ListRules lists rules in a given project. +func (c *Client) ListRules(ctx context.Context, req *workloadmanagerpb.ListRulesRequest, opts ...gax.CallOption) (*workloadmanagerpb.ListRulesResponse, error) { + return c.internalClient.ListRules(ctx, req, opts...) +} + +// ListScannedResources list all scanned resources for a single Execution. +func (c *Client) ListScannedResources(ctx context.Context, req *workloadmanagerpb.ListScannedResourcesRequest, opts ...gax.CallOption) *ScannedResourceIterator { + return c.internalClient.ListScannedResources(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *Client) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *Client) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *Client) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *Client) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *Client) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *Client) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// gRPCClient is a client for interacting with Workload Manager API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type gRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + // The gRPC API client. + client workloadmanagerpb.WorkloadManagerClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewClient creates a new workload manager client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The Workload Manager provides various tools to deploy, validate and observe +// your workloads running on Google Cloud. +func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := defaultGRPCClientOptions() + if newClientHook != nil { + hookOpts, err := newClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := Client{CallOptions: defaultCallOptions()} + + c := &gRPCClient{ + connPool: connPool, + client: workloadmanagerpb.NewWorkloadManagerClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *gRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *gRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version, "pb", protoVersion) + c.xGoogHeaders = []string{ + "x-goog-api-client", gax.XGoogHeader(kv...), + } +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *gRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type restClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing Client + CallOptions **CallOptions + + logger *slog.Logger +} + +// NewRESTClient creates a new workload manager rest client. +// +// The Workload Manager provides various tools to deploy, validate and observe +// your workloads running on Google Cloud. +func NewRESTClient(ctx context.Context, opts ...option.ClientOption) (*Client, error) { + clientOpts := append(defaultRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultRESTCallOptions() + c := &restClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + logger: internaloption.GetLogger(opts), + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &Client{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://workloadmanager.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://workloadmanager.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://workloadmanager.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://workloadmanager.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableNewAuthLibrary(), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *restClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN", "pb", protoVersion) + c.xGoogHeaders = []string{ + "x-goog-api-client", gax.XGoogHeader(kv...), + } +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *restClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *restClient) Connection() *grpc.ClientConn { + return nil +} +func (c *gRPCClient) ListEvaluations(ctx context.Context, req *workloadmanagerpb.ListEvaluationsRequest, opts ...gax.CallOption) *EvaluationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListEvaluations[0:len((*c.CallOptions).ListEvaluations):len((*c.CallOptions).ListEvaluations)], opts...) + it := &EvaluationIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListEvaluationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.Evaluation, string, error) { + resp := &workloadmanagerpb.ListEvaluationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListEvaluations, req, settings.GRPC, c.logger, "ListEvaluations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetEvaluations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetEvaluation(ctx context.Context, req *workloadmanagerpb.GetEvaluationRequest, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetEvaluation[0:len((*c.CallOptions).GetEvaluation):len((*c.CallOptions).GetEvaluation)], opts...) + var resp *workloadmanagerpb.Evaluation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GetEvaluation, req, settings.GRPC, c.logger, "GetEvaluation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) CreateEvaluation(ctx context.Context, req *workloadmanagerpb.CreateEvaluationRequest, opts ...gax.CallOption) (*CreateEvaluationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateEvaluation[0:len((*c.CallOptions).CreateEvaluation):len((*c.CallOptions).CreateEvaluation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.CreateEvaluation, req, settings.GRPC, c.logger, "CreateEvaluation") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) UpdateEvaluation(ctx context.Context, req *workloadmanagerpb.UpdateEvaluationRequest, opts ...gax.CallOption) (*UpdateEvaluationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "evaluation.name", url.QueryEscape(req.GetEvaluation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateEvaluation[0:len((*c.CallOptions).UpdateEvaluation):len((*c.CallOptions).UpdateEvaluation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.UpdateEvaluation, req, settings.GRPC, c.logger, "UpdateEvaluation") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteEvaluation(ctx context.Context, req *workloadmanagerpb.DeleteEvaluationRequest, opts ...gax.CallOption) (*DeleteEvaluationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteEvaluation[0:len((*c.CallOptions).DeleteEvaluation):len((*c.CallOptions).DeleteEvaluation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.DeleteEvaluation, req, settings.GRPC, c.logger, "DeleteEvaluation") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListExecutions(ctx context.Context, req *workloadmanagerpb.ListExecutionsRequest, opts ...gax.CallOption) *ExecutionIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListExecutions[0:len((*c.CallOptions).ListExecutions):len((*c.CallOptions).ListExecutions)], opts...) + it := &ExecutionIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListExecutionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.Execution, string, error) { + resp := &workloadmanagerpb.ListExecutionsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListExecutions, req, settings.GRPC, c.logger, "ListExecutions") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetExecutions(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetExecution(ctx context.Context, req *workloadmanagerpb.GetExecutionRequest, opts ...gax.CallOption) (*workloadmanagerpb.Execution, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetExecution[0:len((*c.CallOptions).GetExecution):len((*c.CallOptions).GetExecution)], opts...) + var resp *workloadmanagerpb.Execution + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.GetExecution, req, settings.GRPC, c.logger, "GetExecution") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) RunEvaluation(ctx context.Context, req *workloadmanagerpb.RunEvaluationRequest, opts ...gax.CallOption) (*RunEvaluationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).RunEvaluation[0:len((*c.CallOptions).RunEvaluation):len((*c.CallOptions).RunEvaluation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.RunEvaluation, req, settings.GRPC, c.logger, "RunEvaluation") + return err + }, opts...) + if err != nil { + return nil, err + } + return &RunEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) DeleteExecution(ctx context.Context, req *workloadmanagerpb.DeleteExecutionRequest, opts ...gax.CallOption) (*DeleteExecutionOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteExecution[0:len((*c.CallOptions).DeleteExecution):len((*c.CallOptions).DeleteExecution)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.DeleteExecution, req, settings.GRPC, c.logger, "DeleteExecution") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteExecutionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *gRPCClient) ListExecutionResults(ctx context.Context, req *workloadmanagerpb.ListExecutionResultsRequest, opts ...gax.CallOption) *ExecutionResultIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListExecutionResults[0:len((*c.CallOptions).ListExecutionResults):len((*c.CallOptions).ListExecutionResults)], opts...) + it := &ExecutionResultIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListExecutionResultsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.ExecutionResult, string, error) { + resp := &workloadmanagerpb.ListExecutionResultsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListExecutionResults, req, settings.GRPC, c.logger, "ListExecutionResults") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetExecutionResults(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) ListRules(ctx context.Context, req *workloadmanagerpb.ListRulesRequest, opts ...gax.CallOption) (*workloadmanagerpb.ListRulesResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListRules[0:len((*c.CallOptions).ListRules):len((*c.CallOptions).ListRules)], opts...) + var resp *workloadmanagerpb.ListRulesResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListRules, req, settings.GRPC, c.logger, "ListRules") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListScannedResources(ctx context.Context, req *workloadmanagerpb.ListScannedResourcesRequest, opts ...gax.CallOption) *ScannedResourceIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListScannedResources[0:len((*c.CallOptions).ListScannedResources):len((*c.CallOptions).ListScannedResources)], opts...) + it := &ScannedResourceIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListScannedResourcesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.ScannedResource, string, error) { + resp := &workloadmanagerpb.ListScannedResourcesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.client.ListScannedResources, req, settings.GRPC, c.logger, "ListScannedResources") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetScannedResources(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.GetLocation, req, settings.GRPC, c.logger, "GetLocation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *gRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *gRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *gRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *gRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// ListEvaluations lists Evaluations in a given project and location. +func (c *restClient) ListEvaluations(ctx context.Context, req *workloadmanagerpb.ListEvaluationsRequest, opts ...gax.CallOption) *EvaluationIterator { + it := &EvaluationIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListEvaluationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.Evaluation, string, error) { + resp := &workloadmanagerpb.ListEvaluationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/evaluations", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListEvaluations") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetEvaluations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetEvaluation gets details of a single Evaluation. +func (c *restClient) GetEvaluation(ctx context.Context, req *workloadmanagerpb.GetEvaluationRequest, opts ...gax.CallOption) (*workloadmanagerpb.Evaluation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetEvaluation[0:len((*c.CallOptions).GetEvaluation):len((*c.CallOptions).GetEvaluation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &workloadmanagerpb.Evaluation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetEvaluation") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CreateEvaluation creates a new Evaluation in a given project and location. +func (c *restClient) CreateEvaluation(ctx context.Context, req *workloadmanagerpb.CreateEvaluationRequest, opts ...gax.CallOption) (*CreateEvaluationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetEvaluation() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/evaluations", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("evaluationId", fmt.Sprintf("%v", req.GetEvaluationId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "CreateEvaluation") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &CreateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateEvaluation updates the parameters of a single Evaluation. +func (c *restClient) UpdateEvaluation(ctx context.Context, req *workloadmanagerpb.UpdateEvaluationRequest, opts ...gax.CallOption) (*UpdateEvaluationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetEvaluation() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetEvaluation().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + field, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(field[1:len(field)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "evaluation.name", url.QueryEscape(req.GetEvaluation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "UpdateEvaluation") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &UpdateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteEvaluation deletes a single Evaluation. +func (c *restClient) DeleteEvaluation(ctx context.Context, req *workloadmanagerpb.DeleteEvaluationRequest, opts ...gax.CallOption) (*DeleteEvaluationOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetForce() { + params.Add("force", fmt.Sprintf("%v", req.GetForce())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "DeleteEvaluation") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListExecutions lists Executions in a given project and location. +func (c *restClient) ListExecutions(ctx context.Context, req *workloadmanagerpb.ListExecutionsRequest, opts ...gax.CallOption) *ExecutionIterator { + it := &ExecutionIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListExecutionsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.Execution, string, error) { + resp := &workloadmanagerpb.ListExecutionsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/executions", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListExecutions") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetExecutions(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetExecution gets details of a single Execution. +func (c *restClient) GetExecution(ctx context.Context, req *workloadmanagerpb.GetExecutionRequest, opts ...gax.CallOption) (*workloadmanagerpb.Execution, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetExecution[0:len((*c.CallOptions).GetExecution):len((*c.CallOptions).GetExecution)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &workloadmanagerpb.Execution{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetExecution") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// RunEvaluation creates a new Execution in a given project and location. +func (c *restClient) RunEvaluation(ctx context.Context, req *workloadmanagerpb.RunEvaluationRequest, opts ...gax.CallOption) (*RunEvaluationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/executions:run", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "RunEvaluation") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &RunEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteExecution deletes a single Execution. +func (c *restClient) DeleteExecution(ctx context.Context, req *workloadmanagerpb.DeleteExecutionRequest, opts ...gax.CallOption) (*DeleteExecutionOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "DeleteExecution") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &DeleteExecutionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListExecutionResults lists the result of a single evaluation. +func (c *restClient) ListExecutionResults(ctx context.Context, req *workloadmanagerpb.ListExecutionResultsRequest, opts ...gax.CallOption) *ExecutionResultIterator { + it := &ExecutionResultIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListExecutionResultsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.ExecutionResult, string, error) { + resp := &workloadmanagerpb.ListExecutionResultsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/results", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListExecutionResults") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetExecutionResults(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// ListRules lists rules in a given project. +func (c *restClient) ListRules(ctx context.Context, req *workloadmanagerpb.ListRulesRequest, opts ...gax.CallOption) (*workloadmanagerpb.ListRulesResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/rules", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetCustomRulesBucket() != "" { + params.Add("customRulesBucket", fmt.Sprintf("%v", req.GetCustomRulesBucket())) + } + if req.GetEvaluationType() != 0 { + params.Add("evaluationType", fmt.Sprintf("%v", req.GetEvaluationType())) + } + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ListRules[0:len((*c.CallOptions).ListRules):len((*c.CallOptions).ListRules)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &workloadmanagerpb.ListRulesResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListRules") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListScannedResources list all scanned resources for a single Execution. +func (c *restClient) ListScannedResources(ctx context.Context, req *workloadmanagerpb.ListScannedResourcesRequest, opts ...gax.CallOption) *ScannedResourceIterator { + it := &ScannedResourceIterator{} + req = proto.Clone(req).(*workloadmanagerpb.ListScannedResourcesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*workloadmanagerpb.ScannedResource, string, error) { + resp := &workloadmanagerpb.ListScannedResourcesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/scannedResources", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + if req.GetRule() != "" { + params.Add("rule", fmt.Sprintf("%v", req.GetRule())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListScannedResources") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetScannedResources(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetLocation gets information about a location. +func (c *restClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &locationpb.Location{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetLocation") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *restClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/locations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListLocations") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *restClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:cancel", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + _, err = executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, jsonReq, "CancelOperation") + return err + }, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *restClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + _, err = executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "DeleteOperation") + return err + }, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *restClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "GetOperation") + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *restClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/operations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + if req.GetReturnPartialSuccess() { + params.Add("returnPartialSuccess", fmt.Sprintf("%v", req.GetReturnPartialSuccess())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + buf, err := executeHTTPRequest(ctx, c.httpClient, httpReq, c.logger, nil, "ListOperations") + if err != nil { + return err + } + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateEvaluationOperation returns a new CreateEvaluationOperation from a given name. +// The name must be that of a previously created CreateEvaluationOperation, possibly from a different process. +func (c *gRPCClient) CreateEvaluationOperation(name string) *CreateEvaluationOperation { + return &CreateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateEvaluationOperation returns a new CreateEvaluationOperation from a given name. +// The name must be that of a previously created CreateEvaluationOperation, possibly from a different process. +func (c *restClient) CreateEvaluationOperation(name string) *CreateEvaluationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteEvaluationOperation returns a new DeleteEvaluationOperation from a given name. +// The name must be that of a previously created DeleteEvaluationOperation, possibly from a different process. +func (c *gRPCClient) DeleteEvaluationOperation(name string) *DeleteEvaluationOperation { + return &DeleteEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteEvaluationOperation returns a new DeleteEvaluationOperation from a given name. +// The name must be that of a previously created DeleteEvaluationOperation, possibly from a different process. +func (c *restClient) DeleteEvaluationOperation(name string) *DeleteEvaluationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteExecutionOperation returns a new DeleteExecutionOperation from a given name. +// The name must be that of a previously created DeleteExecutionOperation, possibly from a different process. +func (c *gRPCClient) DeleteExecutionOperation(name string) *DeleteExecutionOperation { + return &DeleteExecutionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteExecutionOperation returns a new DeleteExecutionOperation from a given name. +// The name must be that of a previously created DeleteExecutionOperation, possibly from a different process. +func (c *restClient) DeleteExecutionOperation(name string) *DeleteExecutionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteExecutionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// RunEvaluationOperation returns a new RunEvaluationOperation from a given name. +// The name must be that of a previously created RunEvaluationOperation, possibly from a different process. +func (c *gRPCClient) RunEvaluationOperation(name string) *RunEvaluationOperation { + return &RunEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RunEvaluationOperation returns a new RunEvaluationOperation from a given name. +// The name must be that of a previously created RunEvaluationOperation, possibly from a different process. +func (c *restClient) RunEvaluationOperation(name string) *RunEvaluationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &RunEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateEvaluationOperation returns a new UpdateEvaluationOperation from a given name. +// The name must be that of a previously created UpdateEvaluationOperation, possibly from a different process. +func (c *gRPCClient) UpdateEvaluationOperation(name string) *UpdateEvaluationOperation { + return &UpdateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateEvaluationOperation returns a new UpdateEvaluationOperation from a given name. +// The name must be that of a previously created UpdateEvaluationOperation, possibly from a different process. +func (c *restClient) UpdateEvaluationOperation(name string) *UpdateEvaluationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateEvaluationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/workloadmanager/apiv1/workload_manager_client_example_go123_test.go b/workloadmanager/apiv1/workload_manager_client_example_go123_test.go new file mode 100644 index 000000000000..cbdc334af6b4 --- /dev/null +++ b/workloadmanager/apiv1/workload_manager_client_example_go123_test.go @@ -0,0 +1,184 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +//go:build go1.23 + +package workloadmanager_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleClient_ListEvaluations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListEvaluationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListEvaluationsRequest. + } + for resp, err := range c.ListEvaluations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListExecutionResults_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionResultsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionResultsRequest. + } + for resp, err := range c.ListExecutionResults(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListExecutions_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionsRequest. + } + for resp, err := range c.ListExecutions(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListScannedResources_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListScannedResourcesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListScannedResourcesRequest. + } + for resp, err := range c.ListScannedResources(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListLocations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/workloadmanager/apiv1/workload_manager_client_example_test.go b/workloadmanager/apiv1/workload_manager_client_example_test.go new file mode 100644 index 000000000000..cc6448b98e70 --- /dev/null +++ b/workloadmanager/apiv1/workload_manager_client_example_test.go @@ -0,0 +1,600 @@ +// Copyright 2026 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 +// +// https://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_gapic. DO NOT EDIT. + +package workloadmanager_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + workloadmanager "cloud.google.com/go/workloadmanager/apiv1" + workloadmanagerpb "cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleClient_CreateEvaluation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.CreateEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#CreateEvaluationRequest. + } + op, err := c.CreateEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_DeleteEvaluation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.DeleteEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#DeleteEvaluationRequest. + } + op, err := c.DeleteEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_DeleteExecution() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.DeleteExecutionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#DeleteExecutionRequest. + } + op, err := c.DeleteExecution(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_GetEvaluation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.GetEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#GetEvaluationRequest. + } + resp, err := c.GetEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetExecution() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.GetExecutionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#GetExecutionRequest. + } + resp, err := c.GetExecution(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListEvaluations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListEvaluationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListEvaluationsRequest. + } + it := c.ListEvaluations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListEvaluationsResponse) + } +} + +func ExampleClient_ListExecutionResults() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionResultsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionResultsRequest. + } + it := c.ListExecutionResults(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListExecutionResultsResponse) + } +} + +func ExampleClient_ListExecutions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListExecutionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListExecutionsRequest. + } + it := c.ListExecutions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListExecutionsResponse) + } +} + +func ExampleClient_ListRules() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListRulesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListRulesRequest. + } + resp, err := c.ListRules(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListScannedResources() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.ListScannedResourcesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#ListScannedResourcesRequest. + } + it := c.ListScannedResources(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*workloadmanagerpb.ListScannedResourcesResponse) + } +} + +func ExampleClient_RunEvaluation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.RunEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#RunEvaluationRequest. + } + op, err := c.RunEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_UpdateEvaluation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &workloadmanagerpb.UpdateEvaluationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/workloadmanager/apiv1/workloadmanagerpb#UpdateEvaluationRequest. + } + op, err := c.UpdateEvaluation(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExampleClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := workloadmanager.NewClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/workloadmanager/apiv1/workloadmanagerpb/service.pb.go b/workloadmanager/apiv1/workloadmanagerpb/service.pb.go new file mode 100644 index 000000000000..eb37290b0250 --- /dev/null +++ b/workloadmanager/apiv1/workloadmanagerpb/service.pb.go @@ -0,0 +1,4440 @@ +// Copyright 2026 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.35.2 +// protoc v4.25.7 +// source: google/cloud/workloadmanager/v1/service.proto + +package workloadmanagerpb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +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) +) + +// Possible types of workload evaluations like SAP, SQL Server, etc. +type Evaluation_EvaluationType int32 + +const ( + // Not specified. + Evaluation_EVALUATION_TYPE_UNSPECIFIED Evaluation_EvaluationType = 0 + // SAP best practices. + Evaluation_SAP Evaluation_EvaluationType = 1 + // SQL best practices. + Evaluation_SQL_SERVER Evaluation_EvaluationType = 2 + // Customized best practices. + Evaluation_OTHER Evaluation_EvaluationType = 3 +) + +// Enum value maps for Evaluation_EvaluationType. +var ( + Evaluation_EvaluationType_name = map[int32]string{ + 0: "EVALUATION_TYPE_UNSPECIFIED", + 1: "SAP", + 2: "SQL_SERVER", + 3: "OTHER", + } + Evaluation_EvaluationType_value = map[string]int32{ + "EVALUATION_TYPE_UNSPECIFIED": 0, + "SAP": 1, + "SQL_SERVER": 2, + "OTHER": 3, + } +) + +func (x Evaluation_EvaluationType) Enum() *Evaluation_EvaluationType { + p := new(Evaluation_EvaluationType) + *p = x + return p +} + +func (x Evaluation_EvaluationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Evaluation_EvaluationType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[0].Descriptor() +} + +func (Evaluation_EvaluationType) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[0] +} + +func (x Evaluation_EvaluationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Evaluation_EvaluationType.Descriptor instead. +func (Evaluation_EvaluationType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{0, 0} +} + +// Possible states of an evaluation, such as CREATING, ACTIVE, and DELETING. +type ResourceStatus_State int32 + +const ( + // The state has not been populated in this message. + ResourceStatus_STATE_UNSPECIFIED ResourceStatus_State = 0 + // Resource has an active Create operation. + ResourceStatus_CREATING ResourceStatus_State = 1 + // Resource has no outstanding operations on it or has active Update + // operations. + ResourceStatus_ACTIVE ResourceStatus_State = 2 + // Resource has an active Delete operation. + ResourceStatus_DELETING ResourceStatus_State = 3 +) + +// Enum value maps for ResourceStatus_State. +var ( + ResourceStatus_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "ACTIVE", + 3: "DELETING", + } + ResourceStatus_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "DELETING": 3, + } +) + +func (x ResourceStatus_State) Enum() *ResourceStatus_State { + p := new(ResourceStatus_State) + *p = x + return p +} + +func (x ResourceStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ResourceStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[1].Descriptor() +} + +func (ResourceStatus_State) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[1] +} + +func (x ResourceStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ResourceStatus_State.Descriptor instead. +func (ResourceStatus_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{3, 0} +} + +// The possible states of an execution like RUNNING, SUCCEEDED, FAILED, etc. +type Execution_State int32 + +const ( + // State of execution is unspecified. + Execution_STATE_UNSPECIFIED Execution_State = 0 + // The execution is running in backend service. + Execution_RUNNING Execution_State = 1 + // The execution run succeeded. + Execution_SUCCEEDED Execution_State = 2 + // The execution run failed. + Execution_FAILED Execution_State = 3 +) + +// Enum value maps for Execution_State. +var ( + Execution_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "RUNNING", + 2: "SUCCEEDED", + 3: "FAILED", + } + Execution_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "RUNNING": 1, + "SUCCEEDED": 2, + "FAILED": 3, + } +) + +func (x Execution_State) Enum() *Execution_State { + p := new(Execution_State) + *p = x + return p +} + +func (x Execution_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Execution_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[2].Descriptor() +} + +func (Execution_State) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[2] +} + +func (x Execution_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Execution_State.Descriptor instead. +func (Execution_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 0} +} + +// The type of execution, could be on demand execute or scheduled execute. +type Execution_Type int32 + +const ( + // Type of execution is unspecified. + Execution_TYPE_UNSPECIFIED Execution_Type = 0 + // Type of execution is one time. + Execution_ONE_TIME Execution_Type = 1 + // Type of execution is scheduled. + Execution_SCHEDULED Execution_Type = 2 +) + +// Enum value maps for Execution_Type. +var ( + Execution_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "ONE_TIME", + 2: "SCHEDULED", + } + Execution_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "ONE_TIME": 1, + "SCHEDULED": 2, + } +) + +func (x Execution_Type) Enum() *Execution_Type { + p := new(Execution_Type) + *p = x + return p +} + +func (x Execution_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Execution_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[3].Descriptor() +} + +func (Execution_Type) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[3] +} + +func (x Execution_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Execution_Type.Descriptor instead. +func (Execution_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 1} +} + +// The engine used for the execution. +type Execution_Engine int32 + +const ( + // The original CG. + Execution_ENGINE_UNSPECIFIED Execution_Engine = 0 + // SlimCG / Scanner. + Execution_ENGINE_SCANNER Execution_Engine = 1 + // Evaluation Engine V2. + Execution_V2 Execution_Engine = 2 +) + +// Enum value maps for Execution_Engine. +var ( + Execution_Engine_name = map[int32]string{ + 0: "ENGINE_UNSPECIFIED", + 1: "ENGINE_SCANNER", + 2: "V2", + } + Execution_Engine_value = map[string]int32{ + "ENGINE_UNSPECIFIED": 0, + "ENGINE_SCANNER": 1, + "V2": 2, + } +) + +func (x Execution_Engine) Enum() *Execution_Engine { + p := new(Execution_Engine) + *p = x + return p +} + +func (x Execution_Engine) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Execution_Engine) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[4].Descriptor() +} + +func (Execution_Engine) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[4] +} + +func (x Execution_Engine) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Execution_Engine.Descriptor instead. +func (Execution_Engine) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 2} +} + +// Possible types of external data sources like BigQuery table, etc. +type Execution_ExternalDataSources_Type int32 + +const ( + // Unknown type. + Execution_ExternalDataSources_TYPE_UNSPECIFIED Execution_ExternalDataSources_Type = 0 + // BigQuery table. + Execution_ExternalDataSources_BIG_QUERY_TABLE Execution_ExternalDataSources_Type = 1 +) + +// Enum value maps for Execution_ExternalDataSources_Type. +var ( + Execution_ExternalDataSources_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "BIG_QUERY_TABLE", + } + Execution_ExternalDataSources_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "BIG_QUERY_TABLE": 1, + } +) + +func (x Execution_ExternalDataSources_Type) Enum() *Execution_ExternalDataSources_Type { + p := new(Execution_ExternalDataSources_Type) + *p = x + return p +} + +func (x Execution_ExternalDataSources_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Execution_ExternalDataSources_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[5].Descriptor() +} + +func (Execution_ExternalDataSources_Type) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[5] +} + +func (x Execution_ExternalDataSources_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Execution_ExternalDataSources_Type.Descriptor instead. +func (Execution_ExternalDataSources_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 0, 0} +} + +// Possible states of a rule execution like SUCCESS, FAILURE, etc. +type RuleExecutionResult_State int32 + +const ( + // Unknown state + RuleExecutionResult_STATE_UNSPECIFIED RuleExecutionResult_State = 0 + // Execution completed successfully + RuleExecutionResult_STATE_SUCCESS RuleExecutionResult_State = 1 + // Execution completed with failures + RuleExecutionResult_STATE_FAILURE RuleExecutionResult_State = 2 + // Execution was not executed + RuleExecutionResult_STATE_SKIPPED RuleExecutionResult_State = 3 +) + +// Enum value maps for RuleExecutionResult_State. +var ( + RuleExecutionResult_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "STATE_SUCCESS", + 2: "STATE_FAILURE", + 3: "STATE_SKIPPED", + } + RuleExecutionResult_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STATE_SUCCESS": 1, + "STATE_FAILURE": 2, + "STATE_SKIPPED": 3, + } +) + +func (x RuleExecutionResult_State) Enum() *RuleExecutionResult_State { + p := new(RuleExecutionResult_State) + *p = x + return p +} + +func (x RuleExecutionResult_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RuleExecutionResult_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[6].Descriptor() +} + +func (RuleExecutionResult_State) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[6] +} + +func (x RuleExecutionResult_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RuleExecutionResult_State.Descriptor instead. +func (RuleExecutionResult_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{12, 0} +} + +// Enum of execution result type. +type ExecutionResult_Type int32 + +const ( + // Unknown state. + ExecutionResult_TYPE_UNSPECIFIED ExecutionResult_Type = 0 + // Resource successfully passed the rule. + ExecutionResult_TYPE_PASSED ExecutionResult_Type = 1 + // Resource violated the rule. + ExecutionResult_TYPE_VIOLATED ExecutionResult_Type = 2 +) + +// Enum value maps for ExecutionResult_Type. +var ( + ExecutionResult_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "TYPE_PASSED", + 2: "TYPE_VIOLATED", + } + ExecutionResult_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "TYPE_PASSED": 1, + "TYPE_VIOLATED": 2, + } +) + +func (x ExecutionResult_Type) Enum() *ExecutionResult_Type { + p := new(ExecutionResult_Type) + *p = x + return p +} + +func (x ExecutionResult_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ExecutionResult_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[7].Descriptor() +} + +func (ExecutionResult_Type) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[7] +} + +func (x ExecutionResult_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ExecutionResult_Type.Descriptor instead. +func (ExecutionResult_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{20, 0} +} + +// The type of the rule. +type Rule_RuleType int32 + +const ( + // Not specified. + Rule_RULE_TYPE_UNSPECIFIED Rule_RuleType = 0 + // Baseline rules. + Rule_BASELINE Rule_RuleType = 1 + // Custom rules. + Rule_CUSTOM Rule_RuleType = 2 +) + +// Enum value maps for Rule_RuleType. +var ( + Rule_RuleType_name = map[int32]string{ + 0: "RULE_TYPE_UNSPECIFIED", + 1: "BASELINE", + 2: "CUSTOM", + } + Rule_RuleType_value = map[string]int32{ + "RULE_TYPE_UNSPECIFIED": 0, + "BASELINE": 1, + "CUSTOM": 2, + } +) + +func (x Rule_RuleType) Enum() *Rule_RuleType { + p := new(Rule_RuleType) + *p = x + return p +} + +func (x Rule_RuleType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Rule_RuleType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_workloadmanager_v1_service_proto_enumTypes[8].Descriptor() +} + +func (Rule_RuleType) Type() protoreflect.EnumType { + return &file_google_cloud_workloadmanager_v1_service_proto_enumTypes[8] +} + +func (x Rule_RuleType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Rule_RuleType.Descriptor instead. +func (Rule_RuleType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{28, 0} +} + +// Represents a Workload Manager Evaluation configuration. +// An Evaluation defines a set of rules to be validated against a scope +// of Cloud resources. +type Evaluation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of resource that has the form + // `projects/{project_id}/locations/{location_id}/evaluations/{evaluation_id}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Description of the Evaluation. + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` + // Resource filter for an evaluation defining the scope of resources to be + // evaluated. + ResourceFilter *ResourceFilter `protobuf:"bytes,3,opt,name=resource_filter,json=resourceFilter,proto3" json:"resource_filter,omitempty"` + // The names of the rules used for this evaluation. + RuleNames []string `protobuf:"bytes,4,rep,name=rule_names,json=ruleNames,proto3" json:"rule_names,omitempty"` + // Output only. [Output only] The current lifecycle state of the evaluation + // resource. + ResourceStatus *ResourceStatus `protobuf:"bytes,6,opt,name=resource_status,json=resourceStatus,proto3" json:"resource_status,omitempty"` + // Output only. [Output only] Create time stamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. [Output only] Update time stamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,9,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Crontab format schedule for scheduled evaluation, currently only supports + // the following fixed schedules: + // * `0 */1 * * *` # Hourly + // * `0 */6 * * *` # Every 6 hours + // * `0 */12 * * *` # Every 12 hours + // * `0 0 */1 * *` # Daily + // * `0 0 */7 * *` # Weekly + // * `0 0 */14 * *` # Every 14 days + // * `0 0 1 */1 *` # Monthly + Schedule *string `protobuf:"bytes,10,opt,name=schedule,proto3,oneof" json:"schedule,omitempty"` + // The Cloud Storage bucket name for custom rules. + CustomRulesBucket string `protobuf:"bytes,11,opt,name=custom_rules_bucket,json=customRulesBucket,proto3" json:"custom_rules_bucket,omitempty"` + // Evaluation type. + EvaluationType Evaluation_EvaluationType `protobuf:"varint,12,opt,name=evaluation_type,json=evaluationType,proto3,enum=google.cloud.workloadmanager.v1.Evaluation_EvaluationType" json:"evaluation_type,omitempty"` + // Optional. The BigQuery destination for detailed evaluation results. + // If this field is specified, the results of each evaluation execution are + // exported to BigQuery. + BigQueryDestination *BigQueryDestination `protobuf:"bytes,13,opt,name=big_query_destination,json=bigQueryDestination,proto3" json:"big_query_destination,omitempty"` + // Optional. Immutable. Customer-managed encryption key name, in the format + // projects/*/locations/*/keyRings/*/cryptoKeys/*. + // The key will be used for CMEK encryption of the evaluation resource. + KmsKey string `protobuf:"bytes,15,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` +} + +func (x *Evaluation) Reset() { + *x = Evaluation{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Evaluation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Evaluation) ProtoMessage() {} + +func (x *Evaluation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Evaluation.ProtoReflect.Descriptor instead. +func (*Evaluation) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{0} +} + +func (x *Evaluation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Evaluation) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Evaluation) GetResourceFilter() *ResourceFilter { + if x != nil { + return x.ResourceFilter + } + return nil +} + +func (x *Evaluation) GetRuleNames() []string { + if x != nil { + return x.RuleNames + } + return nil +} + +func (x *Evaluation) GetResourceStatus() *ResourceStatus { + if x != nil { + return x.ResourceStatus + } + return nil +} + +func (x *Evaluation) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Evaluation) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Evaluation) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Evaluation) GetSchedule() string { + if x != nil && x.Schedule != nil { + return *x.Schedule + } + return "" +} + +func (x *Evaluation) GetCustomRulesBucket() string { + if x != nil { + return x.CustomRulesBucket + } + return "" +} + +func (x *Evaluation) GetEvaluationType() Evaluation_EvaluationType { + if x != nil { + return x.EvaluationType + } + return Evaluation_EVALUATION_TYPE_UNSPECIFIED +} + +func (x *Evaluation) GetBigQueryDestination() *BigQueryDestination { + if x != nil { + return x.BigQueryDestination + } + return nil +} + +func (x *Evaluation) GetKmsKey() string { + if x != nil { + return x.KmsKey + } + return "" +} + +// Resource filter for an evaluation defining the scope of resources to be +// evaluated. +type ResourceFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The scopes of evaluation resource. + // Format: + // * `projects/{project_id}` + // * `folders/{folder_id}` + // * `organizations/{organization_id}` + Scopes []string `protobuf:"bytes,1,rep,name=scopes,proto3" json:"scopes,omitempty"` + // The pattern to filter resources by their id + // For example, a pattern of ".*prod-cluster.*" will match all resources that + // contain "prod-cluster" in their ID. + ResourceIdPatterns []string `protobuf:"bytes,2,rep,name=resource_id_patterns,json=resourceIdPatterns,proto3" json:"resource_id_patterns,omitempty"` + // Labels to filter resources by. Each key-value pair in the map must exist + // on the resource for it to be included (e.g. VM instance labels). + // For example, specifying `{ "env": "prod", "database": "nosql" }` will only + // include resources that have labels `env=prod` and `database=nosql`. + InclusionLabels map[string]string `protobuf:"bytes,3,rep,name=inclusion_labels,json=inclusionLabels,proto3" json:"inclusion_labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Filter compute engine resources. + GceInstanceFilter *GceInstanceFilter `protobuf:"bytes,4,opt,name=gce_instance_filter,json=gceInstanceFilter,proto3" json:"gce_instance_filter,omitempty"` +} + +func (x *ResourceFilter) Reset() { + *x = ResourceFilter{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceFilter) ProtoMessage() {} + +func (x *ResourceFilter) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceFilter.ProtoReflect.Descriptor instead. +func (*ResourceFilter) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ResourceFilter) GetScopes() []string { + if x != nil { + return x.Scopes + } + return nil +} + +func (x *ResourceFilter) GetResourceIdPatterns() []string { + if x != nil { + return x.ResourceIdPatterns + } + return nil +} + +func (x *ResourceFilter) GetInclusionLabels() map[string]string { + if x != nil { + return x.InclusionLabels + } + return nil +} + +func (x *ResourceFilter) GetGceInstanceFilter() *GceInstanceFilter { + if x != nil { + return x.GceInstanceFilter + } + return nil +} + +// A filter for matching Compute Engine instances. +type GceInstanceFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If non-empty, only Compute Engine instances associated with at least one of + // the provided service accounts will be included in the evaluation. + ServiceAccounts []string `protobuf:"bytes,4,rep,name=service_accounts,json=serviceAccounts,proto3" json:"service_accounts,omitempty"` +} + +func (x *GceInstanceFilter) Reset() { + *x = GceInstanceFilter{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GceInstanceFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GceInstanceFilter) ProtoMessage() {} + +func (x *GceInstanceFilter) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GceInstanceFilter.ProtoReflect.Descriptor instead. +func (*GceInstanceFilter) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GceInstanceFilter) GetServiceAccounts() []string { + if x != nil { + return x.ServiceAccounts + } + return nil +} + +// The lifecycle status of an Evaluation resource. +type ResourceStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // State of the Evaluation resource. + State ResourceStatus_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.workloadmanager.v1.ResourceStatus_State" json:"state,omitempty"` +} + +func (x *ResourceStatus) Reset() { + *x = ResourceStatus{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ResourceStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceStatus) ProtoMessage() {} + +func (x *ResourceStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResourceStatus.ProtoReflect.Descriptor instead. +func (*ResourceStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ResourceStatus) GetState() ResourceStatus_State { + if x != nil { + return x.State + } + return ResourceStatus_STATE_UNSPECIFIED +} + +// BigQuery destination for evaluation results. +type BigQueryDestination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Destination dataset to save evaluation results. + DestinationDataset string `protobuf:"bytes,1,opt,name=destination_dataset,json=destinationDataset,proto3" json:"destination_dataset,omitempty"` + // Optional. Determines if a new results table will be created when an + // Execution is created. + CreateNewResultsTable bool `protobuf:"varint,2,opt,name=create_new_results_table,json=createNewResultsTable,proto3" json:"create_new_results_table,omitempty"` +} + +func (x *BigQueryDestination) Reset() { + *x = BigQueryDestination{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *BigQueryDestination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigQueryDestination) ProtoMessage() {} + +func (x *BigQueryDestination) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BigQueryDestination.ProtoReflect.Descriptor instead. +func (*BigQueryDestination) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{4} +} + +func (x *BigQueryDestination) GetDestinationDataset() string { + if x != nil { + return x.DestinationDataset + } + return "" +} + +func (x *BigQueryDestination) GetCreateNewResultsTable() bool { + if x != nil { + return x.CreateNewResultsTable + } + return false +} + +// Request message for the ListEvaluations RPC. +type ListEvaluationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListEvaluationsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter to be applied when listing the evaluation results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListEvaluationsRequest) Reset() { + *x = ListEvaluationsRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListEvaluationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEvaluationsRequest) ProtoMessage() {} + +func (x *ListEvaluationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListEvaluationsRequest.ProtoReflect.Descriptor instead. +func (*ListEvaluationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{5} +} + +func (x *ListEvaluationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListEvaluationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListEvaluationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListEvaluationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListEvaluationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for the ListEvaluations RPC. +type ListEvaluationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of evaluations. + Evaluations []*Evaluation `protobuf:"bytes,1,rep,name=evaluations,proto3" json:"evaluations,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListEvaluationsResponse) Reset() { + *x = ListEvaluationsResponse{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListEvaluationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEvaluationsResponse) ProtoMessage() {} + +func (x *ListEvaluationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListEvaluationsResponse.ProtoReflect.Descriptor instead. +func (*ListEvaluationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{6} +} + +func (x *ListEvaluationsResponse) GetEvaluations() []*Evaluation { + if x != nil { + return x.Evaluations + } + return nil +} + +func (x *ListEvaluationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListEvaluationsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request message for the GetEvaluation RPC. +type GetEvaluationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetEvaluationRequest) Reset() { + *x = GetEvaluationRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetEvaluationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetEvaluationRequest) ProtoMessage() {} + +func (x *GetEvaluationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetEvaluationRequest.ProtoReflect.Descriptor instead. +func (*GetEvaluationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{7} +} + +func (x *GetEvaluationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for the CreateEvaluation RPC. +type CreateEvaluationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource prefix of the evaluation location using the form: + // `projects/{project_id}/locations/{location_id}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + EvaluationId string `protobuf:"bytes,2,opt,name=evaluation_id,json=evaluationId,proto3" json:"evaluation_id,omitempty"` + // Required. The resource being created. + Evaluation *Evaluation `protobuf:"bytes,3,opt,name=evaluation,proto3" json:"evaluation,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateEvaluationRequest) Reset() { + *x = CreateEvaluationRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateEvaluationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateEvaluationRequest) ProtoMessage() {} + +func (x *CreateEvaluationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateEvaluationRequest.ProtoReflect.Descriptor instead. +func (*CreateEvaluationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{8} +} + +func (x *CreateEvaluationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateEvaluationRequest) GetEvaluationId() string { + if x != nil { + return x.EvaluationId + } + return "" +} + +func (x *CreateEvaluationRequest) GetEvaluation() *Evaluation { + if x != nil { + return x.Evaluation + } + return nil +} + +func (x *CreateEvaluationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message for the UpdateEvaluation RPC. +type UpdateEvaluationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Evaluation resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Evaluation *Evaluation `protobuf:"bytes,2,opt,name=evaluation,proto3" json:"evaluation,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateEvaluationRequest) Reset() { + *x = UpdateEvaluationRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateEvaluationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateEvaluationRequest) ProtoMessage() {} + +func (x *UpdateEvaluationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateEvaluationRequest.ProtoReflect.Descriptor instead. +func (*UpdateEvaluationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateEvaluationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateEvaluationRequest) GetEvaluation() *Evaluation { + if x != nil { + return x.Evaluation + } + return nil +} + +func (x *UpdateEvaluationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message for the DeleteEvaluation RPC. +type DeleteEvaluationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. Followed the best practice from + // https://aip.dev/135#cascading-delete. + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *DeleteEvaluationRequest) Reset() { + *x = DeleteEvaluationRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteEvaluationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteEvaluationRequest) ProtoMessage() {} + +func (x *DeleteEvaluationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteEvaluationRequest.ProtoReflect.Descriptor instead. +func (*DeleteEvaluationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{10} +} + +func (x *DeleteEvaluationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteEvaluationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *DeleteEvaluationRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// Execution that represents a single run of an Evaluation. +type Execution struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of execution resource. The format is + // projects/{project}/locations/{location}/evaluations/{evaluation}/executions/{execution}. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. [Output only] Start time stamp. + StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // Output only. [Output only] End time stamp. + EndTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. [Output only] Inventory time stamp. + InventoryTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=inventory_time,json=inventoryTime,proto3" json:"inventory_time,omitempty"` + // Output only. [Output only] State. + State Execution_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.workloadmanager.v1.Execution_State" json:"state,omitempty"` + // Output only. [Output only] Evaluation ID. + EvaluationId string `protobuf:"bytes,6,opt,name=evaluation_id,json=evaluationId,proto3" json:"evaluation_id,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,7,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Type which represents whether the execution executed directly by user or + // scheduled according to the `Evaluation.schedule` field. + RunType Execution_Type `protobuf:"varint,8,opt,name=run_type,json=runType,proto3,enum=google.cloud.workloadmanager.v1.Execution_Type" json:"run_type,omitempty"` + // Output only. Execution result summary per rule. + RuleResults []*RuleExecutionResult `protobuf:"bytes,9,rep,name=rule_results,json=ruleResults,proto3" json:"rule_results,omitempty"` + // Optional. External data sources. + ExternalDataSources []*Execution_ExternalDataSources `protobuf:"bytes,10,rep,name=external_data_sources,json=externalDataSources,proto3" json:"external_data_sources,omitempty"` + // Output only. Additional information generated by the execution. + Notices []*Execution_Notice `protobuf:"bytes,11,rep,name=notices,proto3" json:"notices,omitempty"` + // Optional. Engine. + Engine Execution_Engine `protobuf:"varint,12,opt,name=engine,proto3,enum=google.cloud.workloadmanager.v1.Execution_Engine" json:"engine,omitempty"` + // Output only. [Output only] Result summary for the execution. + ResultSummary *Execution_Summary `protobuf:"bytes,13,opt,name=result_summary,json=resultSummary,proto3" json:"result_summary,omitempty"` +} + +func (x *Execution) Reset() { + *x = Execution{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Execution) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Execution) ProtoMessage() {} + +func (x *Execution) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Execution.ProtoReflect.Descriptor instead. +func (*Execution) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11} +} + +func (x *Execution) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Execution) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *Execution) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *Execution) GetInventoryTime() *timestamppb.Timestamp { + if x != nil { + return x.InventoryTime + } + return nil +} + +func (x *Execution) GetState() Execution_State { + if x != nil { + return x.State + } + return Execution_STATE_UNSPECIFIED +} + +func (x *Execution) GetEvaluationId() string { + if x != nil { + return x.EvaluationId + } + return "" +} + +func (x *Execution) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Execution) GetRunType() Execution_Type { + if x != nil { + return x.RunType + } + return Execution_TYPE_UNSPECIFIED +} + +func (x *Execution) GetRuleResults() []*RuleExecutionResult { + if x != nil { + return x.RuleResults + } + return nil +} + +func (x *Execution) GetExternalDataSources() []*Execution_ExternalDataSources { + if x != nil { + return x.ExternalDataSources + } + return nil +} + +func (x *Execution) GetNotices() []*Execution_Notice { + if x != nil { + return x.Notices + } + return nil +} + +func (x *Execution) GetEngine() Execution_Engine { + if x != nil { + return x.Engine + } + return Execution_ENGINE_UNSPECIFIED +} + +func (x *Execution) GetResultSummary() *Execution_Summary { + if x != nil { + return x.ResultSummary + } + return nil +} + +// Execution result summary per rule. +type RuleExecutionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Rule name as plain text like `sap-hana-configured`. + Rule string `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + // Output only. The execution status. + State RuleExecutionResult_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.workloadmanager.v1.RuleExecutionResult_State" json:"state,omitempty"` + // Execution message, if any. + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + // Number of violations. + ResultCount int64 `protobuf:"varint,4,opt,name=result_count,json=resultCount,proto3" json:"result_count,omitempty"` + // Number of total scanned resources. + ScannedResourceCount int64 `protobuf:"varint,5,opt,name=scanned_resource_count,json=scannedResourceCount,proto3" json:"scanned_resource_count,omitempty"` +} + +func (x *RuleExecutionResult) Reset() { + *x = RuleExecutionResult{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RuleExecutionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleExecutionResult) ProtoMessage() {} + +func (x *RuleExecutionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuleExecutionResult.ProtoReflect.Descriptor instead. +func (*RuleExecutionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{12} +} + +func (x *RuleExecutionResult) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +func (x *RuleExecutionResult) GetState() RuleExecutionResult_State { + if x != nil { + return x.State + } + return RuleExecutionResult_STATE_UNSPECIFIED +} + +func (x *RuleExecutionResult) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *RuleExecutionResult) GetResultCount() int64 { + if x != nil { + return x.ResultCount + } + return 0 +} + +func (x *RuleExecutionResult) GetScannedResourceCount() int64 { + if x != nil { + return x.ScannedResourceCount + } + return 0 +} + +// Request message for the ListExecutions RPC. +type ListExecutionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource prefix of the Execution using the form: + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Field to sort by. See https://google.aip.dev/132#ordering for more details. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListExecutionsRequest) Reset() { + *x = ListExecutionsRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListExecutionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExecutionsRequest) ProtoMessage() {} + +func (x *ListExecutionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExecutionsRequest.ProtoReflect.Descriptor instead. +func (*ListExecutionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{13} +} + +func (x *ListExecutionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListExecutionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListExecutionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListExecutionsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListExecutionsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for the ListExecutions RPC. +type ListExecutionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Execution. + Executions []*Execution `protobuf:"bytes,1,rep,name=executions,proto3" json:"executions,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListExecutionsResponse) Reset() { + *x = ListExecutionsResponse{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListExecutionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExecutionsResponse) ProtoMessage() {} + +func (x *ListExecutionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExecutionsResponse.ProtoReflect.Descriptor instead. +func (*ListExecutionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{14} +} + +func (x *ListExecutionsResponse) GetExecutions() []*Execution { + if x != nil { + return x.Executions + } + return nil +} + +func (x *ListExecutionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListExecutionsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request message for the GetExecution RPC. +type GetExecutionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetExecutionRequest) Reset() { + *x = GetExecutionRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetExecutionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExecutionRequest) ProtoMessage() {} + +func (x *GetExecutionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetExecutionRequest.ProtoReflect.Descriptor instead. +func (*GetExecutionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{15} +} + +func (x *GetExecutionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for the RunEvaluation RPC. +type RunEvaluationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Evaluation using the form: + // `projects/{project}/locations/{location}/evaluations/{evaluation}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. ID of the execution which will be created. + ExecutionId string `protobuf:"bytes,2,opt,name=execution_id,json=executionId,proto3" json:"execution_id,omitempty"` + // Required. The resource being created. + Execution *Execution `protobuf:"bytes,3,opt,name=execution,proto3" json:"execution,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *RunEvaluationRequest) Reset() { + *x = RunEvaluationRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunEvaluationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunEvaluationRequest) ProtoMessage() {} + +func (x *RunEvaluationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunEvaluationRequest.ProtoReflect.Descriptor instead. +func (*RunEvaluationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{16} +} + +func (x *RunEvaluationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RunEvaluationRequest) GetExecutionId() string { + if x != nil { + return x.ExecutionId + } + return "" +} + +func (x *RunEvaluationRequest) GetExecution() *Execution { + if x != nil { + return x.Execution + } + return nil +} + +func (x *RunEvaluationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message for the DeleteExecution RPC. +type DeleteExecutionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteExecutionRequest) Reset() { + *x = DeleteExecutionRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteExecutionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteExecutionRequest) ProtoMessage() {} + +func (x *DeleteExecutionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteExecutionRequest.ProtoReflect.Descriptor instead. +func (*DeleteExecutionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteExecutionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteExecutionRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message for the ListExecutionResults RPC. +type ListExecutionResultsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The execution results. + // Format: {parent}/evaluations/*/executions/*/results. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListExecutionResultsRequest) Reset() { + *x = ListExecutionResultsRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListExecutionResultsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExecutionResultsRequest) ProtoMessage() {} + +func (x *ListExecutionResultsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExecutionResultsRequest.ProtoReflect.Descriptor instead. +func (*ListExecutionResultsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{18} +} + +func (x *ListExecutionResultsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListExecutionResultsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListExecutionResultsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListExecutionResultsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for the ListExecutionResults RPC. +type ListExecutionResultsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The versions from the specified publisher. + ExecutionResults []*ExecutionResult `protobuf:"bytes,1,rep,name=execution_results,json=executionResults,proto3" json:"execution_results,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListExecutionResultsResponse) Reset() { + *x = ListExecutionResultsResponse{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListExecutionResultsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExecutionResultsResponse) ProtoMessage() {} + +func (x *ListExecutionResultsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExecutionResultsResponse.ProtoReflect.Descriptor instead. +func (*ListExecutionResultsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{19} +} + +func (x *ListExecutionResultsResponse) GetExecutionResults() []*ExecutionResult { + if x != nil { + return x.ExecutionResults + } + return nil +} + +func (x *ListExecutionResultsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The result of an execution. +type ExecutionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The violation message of an execution. + ViolationMessage string `protobuf:"bytes,1,opt,name=violation_message,json=violationMessage,proto3" json:"violation_message,omitempty"` + // The severity of violation. + Severity string `protobuf:"bytes,2,opt,name=severity,proto3" json:"severity,omitempty"` + // The rule that is violated in an evaluation. + Rule string `protobuf:"bytes,3,opt,name=rule,proto3" json:"rule,omitempty"` + // The URL for the documentation of the rule. + DocumentationUrl string `protobuf:"bytes,4,opt,name=documentation_url,json=documentationUrl,proto3" json:"documentation_url,omitempty"` + // The resource that violates the rule. + Resource *Resource `protobuf:"bytes,5,opt,name=resource,proto3" json:"resource,omitempty"` + // The details of violation in an evaluation result. + ViolationDetails *ViolationDetails `protobuf:"bytes,6,opt,name=violation_details,json=violationDetails,proto3" json:"violation_details,omitempty"` + // The commands to remediate the violation. + Commands []*Command `protobuf:"bytes,7,rep,name=commands,proto3" json:"commands,omitempty"` + // Execution result type of the scanned resource. + Type ExecutionResult_Type `protobuf:"varint,8,opt,name=type,proto3,enum=google.cloud.workloadmanager.v1.ExecutionResult_Type" json:"type,omitempty"` +} + +func (x *ExecutionResult) Reset() { + *x = ExecutionResult{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecutionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecutionResult) ProtoMessage() {} + +func (x *ExecutionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExecutionResult.ProtoReflect.Descriptor instead. +func (*ExecutionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{20} +} + +func (x *ExecutionResult) GetViolationMessage() string { + if x != nil { + return x.ViolationMessage + } + return "" +} + +func (x *ExecutionResult) GetSeverity() string { + if x != nil { + return x.Severity + } + return "" +} + +func (x *ExecutionResult) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +func (x *ExecutionResult) GetDocumentationUrl() string { + if x != nil { + return x.DocumentationUrl + } + return "" +} + +func (x *ExecutionResult) GetResource() *Resource { + if x != nil { + return x.Resource + } + return nil +} + +func (x *ExecutionResult) GetViolationDetails() *ViolationDetails { + if x != nil { + return x.ViolationDetails + } + return nil +} + +func (x *ExecutionResult) GetCommands() []*Command { + if x != nil { + return x.Commands + } + return nil +} + +func (x *ExecutionResult) GetType() ExecutionResult_Type { + if x != nil { + return x.Type + } + return ExecutionResult_TYPE_UNSPECIFIED +} + +// Command specifies the type of command to execute. +type Command struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of command. + // + // Types that are assignable to CommandType: + // + // *Command_AgentCommand + // *Command_ShellCommand + CommandType isCommand_CommandType `protobuf_oneof:"command_type"` +} + +func (x *Command) Reset() { + *x = Command{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Command) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Command) ProtoMessage() {} + +func (x *Command) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Command.ProtoReflect.Descriptor instead. +func (*Command) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{21} +} + +func (m *Command) GetCommandType() isCommand_CommandType { + if m != nil { + return m.CommandType + } + return nil +} + +func (x *Command) GetAgentCommand() *AgentCommand { + if x, ok := x.GetCommandType().(*Command_AgentCommand); ok { + return x.AgentCommand + } + return nil +} + +func (x *Command) GetShellCommand() *ShellCommand { + if x, ok := x.GetCommandType().(*Command_ShellCommand); ok { + return x.ShellCommand + } + return nil +} + +type isCommand_CommandType interface { + isCommand_CommandType() +} + +type Command_AgentCommand struct { + // AgentCommand specifies a one-time executable program for the agent to + // run. + AgentCommand *AgentCommand `protobuf:"bytes,1,opt,name=agent_command,json=agentCommand,proto3,oneof"` +} + +type Command_ShellCommand struct { + // ShellCommand is invoked via the agent's command line executor. + ShellCommand *ShellCommand `protobuf:"bytes,2,opt,name=shell_command,json=shellCommand,proto3,oneof"` +} + +func (*Command_AgentCommand) isCommand_CommandType() {} + +func (*Command_ShellCommand) isCommand_CommandType() {} + +// An AgentCommand specifies a one-time executable program for the agent to run. +type AgentCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the agent one-time executable that will be invoked. + Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"` + // A map of key/value pairs that can be used to specify + // additional one-time executable settings. + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AgentCommand) Reset() { + *x = AgentCommand{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AgentCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AgentCommand) ProtoMessage() {} + +func (x *AgentCommand) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AgentCommand.ProtoReflect.Descriptor instead. +func (*AgentCommand) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{22} +} + +func (x *AgentCommand) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *AgentCommand) GetParameters() map[string]string { + if x != nil { + return x.Parameters + } + return nil +} + +// A ShellCommand is invoked via the agent's command line executor. +type ShellCommand struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the command to be executed. + Command string `protobuf:"bytes,1,opt,name=command,proto3" json:"command,omitempty"` + // Arguments to be passed to the command. + Args string `protobuf:"bytes,2,opt,name=args,proto3" json:"args,omitempty"` + // Optional. If not specified, the default timeout is 60 seconds. + TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` +} + +func (x *ShellCommand) Reset() { + *x = ShellCommand{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ShellCommand) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShellCommand) ProtoMessage() {} + +func (x *ShellCommand) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShellCommand.ProtoReflect.Descriptor instead. +func (*ShellCommand) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{23} +} + +func (x *ShellCommand) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *ShellCommand) GetArgs() string { + if x != nil { + return x.Args + } + return "" +} + +func (x *ShellCommand) GetTimeoutSeconds() int32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + +// The rule output of the violation. +type RuleOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Violation details generated by rule. + Details map[string]string `protobuf:"bytes,1,rep,name=details,proto3" json:"details,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The message generated by rule. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *RuleOutput) Reset() { + *x = RuleOutput{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RuleOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleOutput) ProtoMessage() {} + +func (x *RuleOutput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuleOutput.ProtoReflect.Descriptor instead. +func (*RuleOutput) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{24} +} + +func (x *RuleOutput) GetDetails() map[string]string { + if x != nil { + return x.Details + } + return nil +} + +func (x *RuleOutput) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// The violation in an evaluation result. +type ViolationDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the asset. + Asset string `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + // The service account associated with the resource. + ServiceAccount string `protobuf:"bytes,2,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` + // Details of the violation. + Observed map[string]string `protobuf:"bytes,3,rep,name=observed,proto3" json:"observed,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The rule output of the violation. + RuleOutput []*RuleOutput `protobuf:"bytes,4,rep,name=rule_output,json=ruleOutput,proto3" json:"rule_output,omitempty"` +} + +func (x *ViolationDetails) Reset() { + *x = ViolationDetails{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ViolationDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViolationDetails) ProtoMessage() {} + +func (x *ViolationDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ViolationDetails.ProtoReflect.Descriptor instead. +func (*ViolationDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{25} +} + +func (x *ViolationDetails) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *ViolationDetails) GetServiceAccount() string { + if x != nil { + return x.ServiceAccount + } + return "" +} + +func (x *ViolationDetails) GetObserved() map[string]string { + if x != nil { + return x.Observed + } + return nil +} + +func (x *ViolationDetails) GetRuleOutput() []*RuleOutput { + if x != nil { + return x.RuleOutput + } + return nil +} + +// Resource in execution result. +type Resource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of resource. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + // The name of the resource. + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // The service account associated with the resource. + ServiceAccount string `protobuf:"bytes,3,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"` +} + +func (x *Resource) Reset() { + *x = Resource{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Resource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Resource) ProtoMessage() {} + +func (x *Resource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Resource.ProtoReflect.Descriptor instead. +func (*Resource) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{26} +} + +func (x *Resource) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *Resource) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Resource) GetServiceAccount() string { + if x != nil { + return x.ServiceAccount + } + return "" +} + +// Represents the metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{27} +} + +func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +// A rule to be evaluated. +type Rule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Rule name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The version of the rule. + RevisionId string `protobuf:"bytes,2,opt,name=revision_id,json=revisionId,proto3" json:"revision_id,omitempty"` + // The name display in UI. + DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Describe rule in plain language. + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + // The severity of the rule. + Severity string `protobuf:"bytes,5,opt,name=severity,proto3" json:"severity,omitempty"` + // The primary category. + PrimaryCategory string `protobuf:"bytes,6,opt,name=primary_category,json=primaryCategory,proto3" json:"primary_category,omitempty"` + // The secondary category. + SecondaryCategory string `protobuf:"bytes,7,opt,name=secondary_category,json=secondaryCategory,proto3" json:"secondary_category,omitempty"` + // The message template for rule. + ErrorMessage string `protobuf:"bytes,8,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + // The document url for the rule. + Uri string `protobuf:"bytes,9,opt,name=uri,proto3" json:"uri,omitempty"` + // The remediation for the rule. + Remediation string `protobuf:"bytes,10,opt,name=remediation,proto3" json:"remediation,omitempty"` + // List of user-defined tags. + Tags []string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty"` + // The type of the rule. + RuleType Rule_RuleType `protobuf:"varint,12,opt,name=rule_type,json=ruleType,proto3,enum=google.cloud.workloadmanager.v1.Rule_RuleType" json:"rule_type,omitempty"` + // The CAI asset type of the rule is evaluating, for joined asset types, it + // will be the corresponding primary asset types. + AssetType string `protobuf:"bytes,13,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` +} + +func (x *Rule) Reset() { + *x = Rule{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Rule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rule) ProtoMessage() {} + +func (x *Rule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{28} +} + +func (x *Rule) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Rule) GetRevisionId() string { + if x != nil { + return x.RevisionId + } + return "" +} + +func (x *Rule) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Rule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Rule) GetSeverity() string { + if x != nil { + return x.Severity + } + return "" +} + +func (x *Rule) GetPrimaryCategory() string { + if x != nil { + return x.PrimaryCategory + } + return "" +} + +func (x *Rule) GetSecondaryCategory() string { + if x != nil { + return x.SecondaryCategory + } + return "" +} + +func (x *Rule) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +func (x *Rule) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Rule) GetRemediation() string { + if x != nil { + return x.Remediation + } + return "" +} + +func (x *Rule) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + +func (x *Rule) GetRuleType() Rule_RuleType { + if x != nil { + return x.RuleType + } + return Rule_RULE_TYPE_UNSPECIFIED +} + +func (x *Rule) GetAssetType() string { + if x != nil { + return x.AssetType + } + return "" +} + +// Request message for the ListRules RPC. +type ListRulesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The [project] on which to execute the request. The format is: + // + // projects/{project_id}/locations/{location} + // + // Currently, the pre-defined rules are global available to all projects and + // all regions. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter based on primary_category, secondary_category. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // The Cloud Storage bucket name for custom rules. + CustomRulesBucket string `protobuf:"bytes,5,opt,name=custom_rules_bucket,json=customRulesBucket,proto3" json:"custom_rules_bucket,omitempty"` + // Optional. The evaluation type of the rules will be applied to. + // The Cloud Storage bucket name for custom rules. + EvaluationType Evaluation_EvaluationType `protobuf:"varint,6,opt,name=evaluation_type,json=evaluationType,proto3,enum=google.cloud.workloadmanager.v1.Evaluation_EvaluationType" json:"evaluation_type,omitempty"` +} + +func (x *ListRulesRequest) Reset() { + *x = ListRulesRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRulesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRulesRequest) ProtoMessage() {} + +func (x *ListRulesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRulesRequest.ProtoReflect.Descriptor instead. +func (*ListRulesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{29} +} + +func (x *ListRulesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRulesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRulesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRulesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRulesRequest) GetCustomRulesBucket() string { + if x != nil { + return x.CustomRulesBucket + } + return "" +} + +func (x *ListRulesRequest) GetEvaluationType() Evaluation_EvaluationType { + if x != nil { + return x.EvaluationType + } + return Evaluation_EVALUATION_TYPE_UNSPECIFIED +} + +// Response message for the ListRules RPC. +type ListRulesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // All rules in response. + Rules []*Rule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` +} + +func (x *ListRulesResponse) Reset() { + *x = ListRulesResponse{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRulesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRulesResponse) ProtoMessage() {} + +func (x *ListRulesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRulesResponse.ProtoReflect.Descriptor instead. +func (*ListRulesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{30} +} + +func (x *ListRulesResponse) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil +} + +// Request message for the ListScannedResources RPC. +type ListScannedResourcesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent for ListScannedResourcesRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Rule name. + Rule string `protobuf:"bytes,2,opt,name=rule,proto3" json:"rule,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` + // Field to sort by. See https://google.aip.dev/132#ordering for more details. + OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListScannedResourcesRequest) Reset() { + *x = ListScannedResourcesRequest{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListScannedResourcesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListScannedResourcesRequest) ProtoMessage() {} + +func (x *ListScannedResourcesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListScannedResourcesRequest.ProtoReflect.Descriptor instead. +func (*ListScannedResourcesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{31} +} + +func (x *ListScannedResourcesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListScannedResourcesRequest) GetRule() string { + if x != nil { + return x.Rule + } + return "" +} + +func (x *ListScannedResourcesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListScannedResourcesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListScannedResourcesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListScannedResourcesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for the ListScannedResources RPC. +type ListScannedResourcesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // All scanned resources in response. + ScannedResources []*ScannedResource `protobuf:"bytes,1,rep,name=scanned_resources,json=scannedResources,proto3" json:"scanned_resources,omitempty"` + // A token, which can be sent as `page_token` to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListScannedResourcesResponse) Reset() { + *x = ListScannedResourcesResponse{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListScannedResourcesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListScannedResourcesResponse) ProtoMessage() {} + +func (x *ListScannedResourcesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListScannedResourcesResponse.ProtoReflect.Descriptor instead. +func (*ListScannedResourcesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{32} +} + +func (x *ListScannedResourcesResponse) GetScannedResources() []*ScannedResource { + if x != nil { + return x.ScannedResources + } + return nil +} + +func (x *ListScannedResourcesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// A scanned resource. +type ScannedResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name. + Resource string `protobuf:"bytes,1,opt,name=resource,proto3" json:"resource,omitempty"` + // Resource type. + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *ScannedResource) Reset() { + *x = ScannedResource{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ScannedResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ScannedResource) ProtoMessage() {} + +func (x *ScannedResource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ScannedResource.ProtoReflect.Descriptor instead. +func (*ScannedResource) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{33} +} + +func (x *ScannedResource) GetResource() string { + if x != nil { + return x.Resource + } + return "" +} + +func (x *ScannedResource) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +// External data sources for an execution. +type Execution_ExternalDataSources struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Name of external data source. The name will be used inside the + // rego/sql to refer the external data. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. URI of external data source. example of bq table + // {project_ID}.{dataset_ID}.{table_ID}. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` + // Required. Type of external data source. + Type Execution_ExternalDataSources_Type `protobuf:"varint,3,opt,name=type,proto3,enum=google.cloud.workloadmanager.v1.Execution_ExternalDataSources_Type" json:"type,omitempty"` + // Required. The asset type of the external data source. + // This can be a supported Cloud Asset Inventory asset type + // (see https://cloud.google.com/asset-inventory/docs/supported-asset-types) + // to override the default asset type, or it can be a custom type defined by + // the user. + AssetType string `protobuf:"bytes,4,opt,name=asset_type,json=assetType,proto3" json:"asset_type,omitempty"` +} + +func (x *Execution_ExternalDataSources) Reset() { + *x = Execution_ExternalDataSources{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Execution_ExternalDataSources) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Execution_ExternalDataSources) ProtoMessage() {} + +func (x *Execution_ExternalDataSources) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Execution_ExternalDataSources.ProtoReflect.Descriptor instead. +func (*Execution_ExternalDataSources) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 0} +} + +func (x *Execution_ExternalDataSources) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Execution_ExternalDataSources) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *Execution_ExternalDataSources) GetType() Execution_ExternalDataSources_Type { + if x != nil { + return x.Type + } + return Execution_ExternalDataSources_TYPE_UNSPECIFIED +} + +func (x *Execution_ExternalDataSources) GetAssetType() string { + if x != nil { + return x.AssetType + } + return "" +} + +// Additional information generated by an execution. +type Execution_Notice struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Message of the notice. + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *Execution_Notice) Reset() { + *x = Execution_Notice{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Execution_Notice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Execution_Notice) ProtoMessage() {} + +func (x *Execution_Notice) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Execution_Notice.ProtoReflect.Descriptor instead. +func (*Execution_Notice) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 1} +} + +func (x *Execution_Notice) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// Execution summary. +type Execution_Summary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Number of failures. + Failures int64 `protobuf:"varint,1,opt,name=failures,proto3" json:"failures,omitempty"` + // Output only. Number of new failures compared to the previous execution. + NewFailures int64 `protobuf:"varint,2,opt,name=new_failures,json=newFailures,proto3" json:"new_failures,omitempty"` + // Output only. Number of new fixes compared to the previous execution. + NewFixes int64 `protobuf:"varint,3,opt,name=new_fixes,json=newFixes,proto3" json:"new_fixes,omitempty"` +} + +func (x *Execution_Summary) Reset() { + *x = Execution_Summary{} + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Execution_Summary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Execution_Summary) ProtoMessage() {} + +func (x *Execution_Summary) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_workloadmanager_v1_service_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Execution_Summary.ProtoReflect.Descriptor instead. +func (*Execution_Summary) Descriptor() ([]byte, []int) { + return file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP(), []int{11, 2} +} + +func (x *Execution_Summary) GetFailures() int64 { + if x != nil { + return x.Failures + } + return 0 +} + +func (x *Execution_Summary) GetNewFailures() int64 { + if x != nil { + return x.NewFailures + } + return 0 +} + +func (x *Execution_Summary) GetNewFixes() int64 { + if x != nil { + return x.NewFixes + } + return 0 +} + +var File_google_cloud_workloadmanager_v1_service_proto protoreflect.FileDescriptor + +var file_google_cloud_workloadmanager_v1_service_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 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, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 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, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 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, 0x84, 0x09, 0x0a, 0x0a, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x0a, + 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x72, 0x75, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 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, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x13, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x63, 0x0a, 0x0f, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x6d, 0x0a, 0x15, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x62, 0x69, 0x67, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x42, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, + 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x6b, 0x6d, 0x73, + 0x4b, 0x65, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, + 0x0a, 0x0e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x56, 0x41, 0x4c, 0x55, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x41, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x51, + 0x4c, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x54, + 0x48, 0x45, 0x52, 0x10, 0x03, 0x3a, 0x8a, 0x01, 0xea, 0x41, 0x86, 0x01, 0x0a, 0x29, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2a, 0x0b, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, + 0xf3, 0x02, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x49, 0x64, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x73, 0x12, 0x6f, 0x0a, 0x10, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x62, 0x0a, + 0x13, 0x67, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x11, + 0x67, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x1a, 0x42, 0x0a, 0x14, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3e, 0x0a, 0x11, 0x47, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x22, 0xa5, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x46, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 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, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x22, 0x89, 0x01, + 0x0a, 0x13, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x12, 0x3c, 0x0a, 0x18, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x77, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xd2, 0x01, 0x0a, 0x16, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x12, 0x29, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xb2, + 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x65, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x5d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x2b, 0x0a, 0x29, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x84, 0x02, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x12, 0x29, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x50, 0x0a, 0x0a, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x17, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 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, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x50, 0x0a, 0x0a, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x9f, 0x01, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, + 0x29, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, + 0x88, 0x0e, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 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, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, + 0x0e, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x04, 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, 0x0d, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4a, 0x0a, 0x08, + 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x07, 0x72, 0x75, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5c, 0x0a, 0x0c, 0x72, 0x75, 0x6c, 0x65, + 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x15, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, + 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, + 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x74, + 0x69, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6e, 0x6f, 0x74, 0x69, 0x63, 0x65, + 0x73, 0x12, 0x4e, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, + 0x67, 0x69, 0x6e, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x12, 0x5e, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x73, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x1a, 0xfa, 0x01, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x5c, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x49, 0x47, + 0x5f, 0x51, 0x55, 0x45, 0x52, 0x59, 0x5f, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x27, + 0x0a, 0x06, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x74, 0x0a, 0x07, 0x53, 0x75, 0x6d, 0x6d, 0x61, + 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x77, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, + 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, + 0x6e, 0x65, 0x77, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x6e, + 0x65, 0x77, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x46, 0x69, 0x78, 0x65, 0x73, 0x1a, 0x39, 0x0a, + 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x46, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, + 0x22, 0x39, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0x3c, 0x0a, 0x06, 0x45, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, + 0x0e, 0x45, 0x4e, 0x47, 0x49, 0x4e, 0x45, 0x5f, 0x53, 0x43, 0x41, 0x4e, 0x4e, 0x45, 0x52, 0x10, + 0x01, 0x12, 0x06, 0x0a, 0x02, 0x56, 0x32, 0x10, 0x02, 0x3a, 0x9e, 0x01, 0xea, 0x41, 0x9a, 0x01, + 0x0a, 0x28, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x65, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x7d, 0x2a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, + 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xcc, 0x02, 0x0a, 0x13, 0x52, + 0x75, 0x6c, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x55, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x63, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x73, 0x63, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x57, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, + 0x53, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, + 0x4c, 0x55, 0x52, 0x45, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x03, 0x22, 0xd0, 0x01, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x12, 0x28, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xae, 0x01, 0x0a, + 0x16, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x12, 0x20, 0x0a, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x5b, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x14, 0x52, + 0x75, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x78, + 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x12, 0x4d, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x1b, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa5, 0x01, 0x0a, 0x1c, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x11, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 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, 0xbf, 0x04, 0x0a, 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x76, 0x69, 0x6f, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, + 0x12, 0x3c, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, + 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x2b, + 0x0a, 0x11, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x64, 0x6f, 0x63, 0x75, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x45, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x10, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x12, 0x44, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x18, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x08, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x73, 0x12, 0x49, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x22, 0x40, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x49, 0x4f, 0x4c, 0x41, + 0x54, 0x45, 0x44, 0x10, 0x02, 0x22, 0xc5, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x12, 0x54, 0x0a, 0x0d, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x67, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x54, 0x0a, 0x0d, 0x73, 0x68, 0x65, 0x6c, 0x6c, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, + 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x48, 0x00, 0x52, + 0x0c, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xc6, 0x01, + 0x0a, 0x0c, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x5d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x67, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x65, 0x0a, 0x0c, 0x53, 0x68, 0x65, 0x6c, 0x6c, 0x43, + 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x61, 0x72, 0x67, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x5f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xc0, 0x01, + 0x0a, 0x0a, 0x52, 0x75, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x57, 0x0a, 0x07, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x1a, 0x3a, 0x0a, 0x0c, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xbe, 0x02, 0x0a, 0x10, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x08, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x12, 0x51, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x1a, 0x3b, 0x0a, 0x0d, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x22, 0x5b, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd5, + 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, + 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x82, 0x05, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x72, + 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x72, + 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x43, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, + 0x72, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x11, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x61, 0x72, 0x79, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x20, 0x0a, 0x0b, 0x72, + 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x73, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, + 0x08, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x55, 0x4c, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x41, 0x53, 0x45, 0x4c, 0x49, 0x4e, 0x45, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x3a, 0x6b, + 0xea, 0x41, 0x68, 0x0a, 0x23, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x34, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x75, 0x6c, 0x65, 0x7d, 0x2a, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x32, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x10, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x68, 0x0a, 0x0f, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x50, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x72, 0x75, 0x6c, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x05, + 0x72, 0x75, 0x6c, 0x65, 0x73, 0x22, 0xbd, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 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, 0x04, 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, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa5, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, + 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x11, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, + 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x10, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 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, 0x41, 0x0a, + 0x0f, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x32, 0xb5, 0x15, 0x0a, 0x0f, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x12, 0xc6, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb3, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x3e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xf5, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x87, 0x01, 0xca, 0x41, 0x1f, 0x0a, 0x0a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x65, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x0a, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x10, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 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, 0x89, 0x01, 0xca, 0x41, 0x1f, 0x0a, + 0x0a, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x16, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x0a, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd8, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x6b, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, + 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xd0, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0xbd, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xf0, 0x01, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x88, 0x01, 0xca, 0x41, + 0x1e, 0x0a, 0x09, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x1b, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x43, 0x3a, 0x01, 0x2a, 0x22, 0x3e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x3a, 0x72, 0x75, 0x6e, 0x12, 0xe3, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, + 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x78, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x2a, 0x3c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xec, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x57, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0xae, 0x01, 0x0a, 0x09, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, + 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x12, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0xf5, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, + 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x60, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x1a, 0x52, 0xca, 0x41, 0x1e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 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, 0xf7, 0x02, 0xea, 0x41, 0x78, 0x0a, 0x21, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, + 0x79, 0x12, 0x53, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, + 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, + 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x1b, 0x57, 0x6f, 0x72, + 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4d, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2f, + 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x70, 0x62, 0x3b, 0x77, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, + 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x57, 0x6f, 0x72, 0x6b, 0x6c, + 0x6f, 0x61, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x22, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x57, + 0x6f, 0x72, 0x6b, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_workloadmanager_v1_service_proto_rawDescOnce sync.Once + file_google_cloud_workloadmanager_v1_service_proto_rawDescData = file_google_cloud_workloadmanager_v1_service_proto_rawDesc +) + +func file_google_cloud_workloadmanager_v1_service_proto_rawDescGZIP() []byte { + file_google_cloud_workloadmanager_v1_service_proto_rawDescOnce.Do(func() { + file_google_cloud_workloadmanager_v1_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_workloadmanager_v1_service_proto_rawDescData) + }) + return file_google_cloud_workloadmanager_v1_service_proto_rawDescData +} + +var file_google_cloud_workloadmanager_v1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_google_cloud_workloadmanager_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_google_cloud_workloadmanager_v1_service_proto_goTypes = []any{ + (Evaluation_EvaluationType)(0), // 0: google.cloud.workloadmanager.v1.Evaluation.EvaluationType + (ResourceStatus_State)(0), // 1: google.cloud.workloadmanager.v1.ResourceStatus.State + (Execution_State)(0), // 2: google.cloud.workloadmanager.v1.Execution.State + (Execution_Type)(0), // 3: google.cloud.workloadmanager.v1.Execution.Type + (Execution_Engine)(0), // 4: google.cloud.workloadmanager.v1.Execution.Engine + (Execution_ExternalDataSources_Type)(0), // 5: google.cloud.workloadmanager.v1.Execution.ExternalDataSources.Type + (RuleExecutionResult_State)(0), // 6: google.cloud.workloadmanager.v1.RuleExecutionResult.State + (ExecutionResult_Type)(0), // 7: google.cloud.workloadmanager.v1.ExecutionResult.Type + (Rule_RuleType)(0), // 8: google.cloud.workloadmanager.v1.Rule.RuleType + (*Evaluation)(nil), // 9: google.cloud.workloadmanager.v1.Evaluation + (*ResourceFilter)(nil), // 10: google.cloud.workloadmanager.v1.ResourceFilter + (*GceInstanceFilter)(nil), // 11: google.cloud.workloadmanager.v1.GceInstanceFilter + (*ResourceStatus)(nil), // 12: google.cloud.workloadmanager.v1.ResourceStatus + (*BigQueryDestination)(nil), // 13: google.cloud.workloadmanager.v1.BigQueryDestination + (*ListEvaluationsRequest)(nil), // 14: google.cloud.workloadmanager.v1.ListEvaluationsRequest + (*ListEvaluationsResponse)(nil), // 15: google.cloud.workloadmanager.v1.ListEvaluationsResponse + (*GetEvaluationRequest)(nil), // 16: google.cloud.workloadmanager.v1.GetEvaluationRequest + (*CreateEvaluationRequest)(nil), // 17: google.cloud.workloadmanager.v1.CreateEvaluationRequest + (*UpdateEvaluationRequest)(nil), // 18: google.cloud.workloadmanager.v1.UpdateEvaluationRequest + (*DeleteEvaluationRequest)(nil), // 19: google.cloud.workloadmanager.v1.DeleteEvaluationRequest + (*Execution)(nil), // 20: google.cloud.workloadmanager.v1.Execution + (*RuleExecutionResult)(nil), // 21: google.cloud.workloadmanager.v1.RuleExecutionResult + (*ListExecutionsRequest)(nil), // 22: google.cloud.workloadmanager.v1.ListExecutionsRequest + (*ListExecutionsResponse)(nil), // 23: google.cloud.workloadmanager.v1.ListExecutionsResponse + (*GetExecutionRequest)(nil), // 24: google.cloud.workloadmanager.v1.GetExecutionRequest + (*RunEvaluationRequest)(nil), // 25: google.cloud.workloadmanager.v1.RunEvaluationRequest + (*DeleteExecutionRequest)(nil), // 26: google.cloud.workloadmanager.v1.DeleteExecutionRequest + (*ListExecutionResultsRequest)(nil), // 27: google.cloud.workloadmanager.v1.ListExecutionResultsRequest + (*ListExecutionResultsResponse)(nil), // 28: google.cloud.workloadmanager.v1.ListExecutionResultsResponse + (*ExecutionResult)(nil), // 29: google.cloud.workloadmanager.v1.ExecutionResult + (*Command)(nil), // 30: google.cloud.workloadmanager.v1.Command + (*AgentCommand)(nil), // 31: google.cloud.workloadmanager.v1.AgentCommand + (*ShellCommand)(nil), // 32: google.cloud.workloadmanager.v1.ShellCommand + (*RuleOutput)(nil), // 33: google.cloud.workloadmanager.v1.RuleOutput + (*ViolationDetails)(nil), // 34: google.cloud.workloadmanager.v1.ViolationDetails + (*Resource)(nil), // 35: google.cloud.workloadmanager.v1.Resource + (*OperationMetadata)(nil), // 36: google.cloud.workloadmanager.v1.OperationMetadata + (*Rule)(nil), // 37: google.cloud.workloadmanager.v1.Rule + (*ListRulesRequest)(nil), // 38: google.cloud.workloadmanager.v1.ListRulesRequest + (*ListRulesResponse)(nil), // 39: google.cloud.workloadmanager.v1.ListRulesResponse + (*ListScannedResourcesRequest)(nil), // 40: google.cloud.workloadmanager.v1.ListScannedResourcesRequest + (*ListScannedResourcesResponse)(nil), // 41: google.cloud.workloadmanager.v1.ListScannedResourcesResponse + (*ScannedResource)(nil), // 42: google.cloud.workloadmanager.v1.ScannedResource + nil, // 43: google.cloud.workloadmanager.v1.Evaluation.LabelsEntry + nil, // 44: google.cloud.workloadmanager.v1.ResourceFilter.InclusionLabelsEntry + (*Execution_ExternalDataSources)(nil), // 45: google.cloud.workloadmanager.v1.Execution.ExternalDataSources + (*Execution_Notice)(nil), // 46: google.cloud.workloadmanager.v1.Execution.Notice + (*Execution_Summary)(nil), // 47: google.cloud.workloadmanager.v1.Execution.Summary + nil, // 48: google.cloud.workloadmanager.v1.Execution.LabelsEntry + nil, // 49: google.cloud.workloadmanager.v1.AgentCommand.ParametersEntry + nil, // 50: google.cloud.workloadmanager.v1.RuleOutput.DetailsEntry + nil, // 51: google.cloud.workloadmanager.v1.ViolationDetails.ObservedEntry + (*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 53: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 54: google.longrunning.Operation +} +var file_google_cloud_workloadmanager_v1_service_proto_depIdxs = []int32{ + 10, // 0: google.cloud.workloadmanager.v1.Evaluation.resource_filter:type_name -> google.cloud.workloadmanager.v1.ResourceFilter + 12, // 1: google.cloud.workloadmanager.v1.Evaluation.resource_status:type_name -> google.cloud.workloadmanager.v1.ResourceStatus + 52, // 2: google.cloud.workloadmanager.v1.Evaluation.create_time:type_name -> google.protobuf.Timestamp + 52, // 3: google.cloud.workloadmanager.v1.Evaluation.update_time:type_name -> google.protobuf.Timestamp + 43, // 4: google.cloud.workloadmanager.v1.Evaluation.labels:type_name -> google.cloud.workloadmanager.v1.Evaluation.LabelsEntry + 0, // 5: google.cloud.workloadmanager.v1.Evaluation.evaluation_type:type_name -> google.cloud.workloadmanager.v1.Evaluation.EvaluationType + 13, // 6: google.cloud.workloadmanager.v1.Evaluation.big_query_destination:type_name -> google.cloud.workloadmanager.v1.BigQueryDestination + 44, // 7: google.cloud.workloadmanager.v1.ResourceFilter.inclusion_labels:type_name -> google.cloud.workloadmanager.v1.ResourceFilter.InclusionLabelsEntry + 11, // 8: google.cloud.workloadmanager.v1.ResourceFilter.gce_instance_filter:type_name -> google.cloud.workloadmanager.v1.GceInstanceFilter + 1, // 9: google.cloud.workloadmanager.v1.ResourceStatus.state:type_name -> google.cloud.workloadmanager.v1.ResourceStatus.State + 9, // 10: google.cloud.workloadmanager.v1.ListEvaluationsResponse.evaluations:type_name -> google.cloud.workloadmanager.v1.Evaluation + 9, // 11: google.cloud.workloadmanager.v1.CreateEvaluationRequest.evaluation:type_name -> google.cloud.workloadmanager.v1.Evaluation + 53, // 12: google.cloud.workloadmanager.v1.UpdateEvaluationRequest.update_mask:type_name -> google.protobuf.FieldMask + 9, // 13: google.cloud.workloadmanager.v1.UpdateEvaluationRequest.evaluation:type_name -> google.cloud.workloadmanager.v1.Evaluation + 52, // 14: google.cloud.workloadmanager.v1.Execution.start_time:type_name -> google.protobuf.Timestamp + 52, // 15: google.cloud.workloadmanager.v1.Execution.end_time:type_name -> google.protobuf.Timestamp + 52, // 16: google.cloud.workloadmanager.v1.Execution.inventory_time:type_name -> google.protobuf.Timestamp + 2, // 17: google.cloud.workloadmanager.v1.Execution.state:type_name -> google.cloud.workloadmanager.v1.Execution.State + 48, // 18: google.cloud.workloadmanager.v1.Execution.labels:type_name -> google.cloud.workloadmanager.v1.Execution.LabelsEntry + 3, // 19: google.cloud.workloadmanager.v1.Execution.run_type:type_name -> google.cloud.workloadmanager.v1.Execution.Type + 21, // 20: google.cloud.workloadmanager.v1.Execution.rule_results:type_name -> google.cloud.workloadmanager.v1.RuleExecutionResult + 45, // 21: google.cloud.workloadmanager.v1.Execution.external_data_sources:type_name -> google.cloud.workloadmanager.v1.Execution.ExternalDataSources + 46, // 22: google.cloud.workloadmanager.v1.Execution.notices:type_name -> google.cloud.workloadmanager.v1.Execution.Notice + 4, // 23: google.cloud.workloadmanager.v1.Execution.engine:type_name -> google.cloud.workloadmanager.v1.Execution.Engine + 47, // 24: google.cloud.workloadmanager.v1.Execution.result_summary:type_name -> google.cloud.workloadmanager.v1.Execution.Summary + 6, // 25: google.cloud.workloadmanager.v1.RuleExecutionResult.state:type_name -> google.cloud.workloadmanager.v1.RuleExecutionResult.State + 20, // 26: google.cloud.workloadmanager.v1.ListExecutionsResponse.executions:type_name -> google.cloud.workloadmanager.v1.Execution + 20, // 27: google.cloud.workloadmanager.v1.RunEvaluationRequest.execution:type_name -> google.cloud.workloadmanager.v1.Execution + 29, // 28: google.cloud.workloadmanager.v1.ListExecutionResultsResponse.execution_results:type_name -> google.cloud.workloadmanager.v1.ExecutionResult + 35, // 29: google.cloud.workloadmanager.v1.ExecutionResult.resource:type_name -> google.cloud.workloadmanager.v1.Resource + 34, // 30: google.cloud.workloadmanager.v1.ExecutionResult.violation_details:type_name -> google.cloud.workloadmanager.v1.ViolationDetails + 30, // 31: google.cloud.workloadmanager.v1.ExecutionResult.commands:type_name -> google.cloud.workloadmanager.v1.Command + 7, // 32: google.cloud.workloadmanager.v1.ExecutionResult.type:type_name -> google.cloud.workloadmanager.v1.ExecutionResult.Type + 31, // 33: google.cloud.workloadmanager.v1.Command.agent_command:type_name -> google.cloud.workloadmanager.v1.AgentCommand + 32, // 34: google.cloud.workloadmanager.v1.Command.shell_command:type_name -> google.cloud.workloadmanager.v1.ShellCommand + 49, // 35: google.cloud.workloadmanager.v1.AgentCommand.parameters:type_name -> google.cloud.workloadmanager.v1.AgentCommand.ParametersEntry + 50, // 36: google.cloud.workloadmanager.v1.RuleOutput.details:type_name -> google.cloud.workloadmanager.v1.RuleOutput.DetailsEntry + 51, // 37: google.cloud.workloadmanager.v1.ViolationDetails.observed:type_name -> google.cloud.workloadmanager.v1.ViolationDetails.ObservedEntry + 33, // 38: google.cloud.workloadmanager.v1.ViolationDetails.rule_output:type_name -> google.cloud.workloadmanager.v1.RuleOutput + 52, // 39: google.cloud.workloadmanager.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 52, // 40: google.cloud.workloadmanager.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 8, // 41: google.cloud.workloadmanager.v1.Rule.rule_type:type_name -> google.cloud.workloadmanager.v1.Rule.RuleType + 0, // 42: google.cloud.workloadmanager.v1.ListRulesRequest.evaluation_type:type_name -> google.cloud.workloadmanager.v1.Evaluation.EvaluationType + 37, // 43: google.cloud.workloadmanager.v1.ListRulesResponse.rules:type_name -> google.cloud.workloadmanager.v1.Rule + 42, // 44: google.cloud.workloadmanager.v1.ListScannedResourcesResponse.scanned_resources:type_name -> google.cloud.workloadmanager.v1.ScannedResource + 5, // 45: google.cloud.workloadmanager.v1.Execution.ExternalDataSources.type:type_name -> google.cloud.workloadmanager.v1.Execution.ExternalDataSources.Type + 14, // 46: google.cloud.workloadmanager.v1.WorkloadManager.ListEvaluations:input_type -> google.cloud.workloadmanager.v1.ListEvaluationsRequest + 16, // 47: google.cloud.workloadmanager.v1.WorkloadManager.GetEvaluation:input_type -> google.cloud.workloadmanager.v1.GetEvaluationRequest + 17, // 48: google.cloud.workloadmanager.v1.WorkloadManager.CreateEvaluation:input_type -> google.cloud.workloadmanager.v1.CreateEvaluationRequest + 18, // 49: google.cloud.workloadmanager.v1.WorkloadManager.UpdateEvaluation:input_type -> google.cloud.workloadmanager.v1.UpdateEvaluationRequest + 19, // 50: google.cloud.workloadmanager.v1.WorkloadManager.DeleteEvaluation:input_type -> google.cloud.workloadmanager.v1.DeleteEvaluationRequest + 22, // 51: google.cloud.workloadmanager.v1.WorkloadManager.ListExecutions:input_type -> google.cloud.workloadmanager.v1.ListExecutionsRequest + 24, // 52: google.cloud.workloadmanager.v1.WorkloadManager.GetExecution:input_type -> google.cloud.workloadmanager.v1.GetExecutionRequest + 25, // 53: google.cloud.workloadmanager.v1.WorkloadManager.RunEvaluation:input_type -> google.cloud.workloadmanager.v1.RunEvaluationRequest + 26, // 54: google.cloud.workloadmanager.v1.WorkloadManager.DeleteExecution:input_type -> google.cloud.workloadmanager.v1.DeleteExecutionRequest + 27, // 55: google.cloud.workloadmanager.v1.WorkloadManager.ListExecutionResults:input_type -> google.cloud.workloadmanager.v1.ListExecutionResultsRequest + 38, // 56: google.cloud.workloadmanager.v1.WorkloadManager.ListRules:input_type -> google.cloud.workloadmanager.v1.ListRulesRequest + 40, // 57: google.cloud.workloadmanager.v1.WorkloadManager.ListScannedResources:input_type -> google.cloud.workloadmanager.v1.ListScannedResourcesRequest + 15, // 58: google.cloud.workloadmanager.v1.WorkloadManager.ListEvaluations:output_type -> google.cloud.workloadmanager.v1.ListEvaluationsResponse + 9, // 59: google.cloud.workloadmanager.v1.WorkloadManager.GetEvaluation:output_type -> google.cloud.workloadmanager.v1.Evaluation + 54, // 60: google.cloud.workloadmanager.v1.WorkloadManager.CreateEvaluation:output_type -> google.longrunning.Operation + 54, // 61: google.cloud.workloadmanager.v1.WorkloadManager.UpdateEvaluation:output_type -> google.longrunning.Operation + 54, // 62: google.cloud.workloadmanager.v1.WorkloadManager.DeleteEvaluation:output_type -> google.longrunning.Operation + 23, // 63: google.cloud.workloadmanager.v1.WorkloadManager.ListExecutions:output_type -> google.cloud.workloadmanager.v1.ListExecutionsResponse + 20, // 64: google.cloud.workloadmanager.v1.WorkloadManager.GetExecution:output_type -> google.cloud.workloadmanager.v1.Execution + 54, // 65: google.cloud.workloadmanager.v1.WorkloadManager.RunEvaluation:output_type -> google.longrunning.Operation + 54, // 66: google.cloud.workloadmanager.v1.WorkloadManager.DeleteExecution:output_type -> google.longrunning.Operation + 28, // 67: google.cloud.workloadmanager.v1.WorkloadManager.ListExecutionResults:output_type -> google.cloud.workloadmanager.v1.ListExecutionResultsResponse + 39, // 68: google.cloud.workloadmanager.v1.WorkloadManager.ListRules:output_type -> google.cloud.workloadmanager.v1.ListRulesResponse + 41, // 69: google.cloud.workloadmanager.v1.WorkloadManager.ListScannedResources:output_type -> google.cloud.workloadmanager.v1.ListScannedResourcesResponse + 58, // [58:70] is the sub-list for method output_type + 46, // [46:58] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name +} + +func init() { file_google_cloud_workloadmanager_v1_service_proto_init() } +func file_google_cloud_workloadmanager_v1_service_proto_init() { + if File_google_cloud_workloadmanager_v1_service_proto != nil { + return + } + file_google_cloud_workloadmanager_v1_service_proto_msgTypes[0].OneofWrappers = []any{} + file_google_cloud_workloadmanager_v1_service_proto_msgTypes[21].OneofWrappers = []any{ + (*Command_AgentCommand)(nil), + (*Command_ShellCommand)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_workloadmanager_v1_service_proto_rawDesc, + NumEnums: 9, + NumMessages: 43, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_workloadmanager_v1_service_proto_goTypes, + DependencyIndexes: file_google_cloud_workloadmanager_v1_service_proto_depIdxs, + EnumInfos: file_google_cloud_workloadmanager_v1_service_proto_enumTypes, + MessageInfos: file_google_cloud_workloadmanager_v1_service_proto_msgTypes, + }.Build() + File_google_cloud_workloadmanager_v1_service_proto = out.File + file_google_cloud_workloadmanager_v1_service_proto_rawDesc = nil + file_google_cloud_workloadmanager_v1_service_proto_goTypes = nil + file_google_cloud_workloadmanager_v1_service_proto_depIdxs = nil +} diff --git a/workloadmanager/apiv1/workloadmanagerpb/service_grpc.pb.go b/workloadmanager/apiv1/workloadmanagerpb/service_grpc.pb.go new file mode 100644 index 000000000000..a435b07d5bb6 --- /dev/null +++ b/workloadmanager/apiv1/workloadmanagerpb/service_grpc.pb.go @@ -0,0 +1,554 @@ +// Copyright 2026 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-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/workloadmanager/v1/service.proto + +package workloadmanagerpb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + WorkloadManager_ListEvaluations_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/ListEvaluations" + WorkloadManager_GetEvaluation_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/GetEvaluation" + WorkloadManager_CreateEvaluation_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/CreateEvaluation" + WorkloadManager_UpdateEvaluation_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/UpdateEvaluation" + WorkloadManager_DeleteEvaluation_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/DeleteEvaluation" + WorkloadManager_ListExecutions_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/ListExecutions" + WorkloadManager_GetExecution_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/GetExecution" + WorkloadManager_RunEvaluation_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/RunEvaluation" + WorkloadManager_DeleteExecution_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/DeleteExecution" + WorkloadManager_ListExecutionResults_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/ListExecutionResults" + WorkloadManager_ListRules_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/ListRules" + WorkloadManager_ListScannedResources_FullMethodName = "/google.cloud.workloadmanager.v1.WorkloadManager/ListScannedResources" +) + +// WorkloadManagerClient is the client API for WorkloadManager service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type WorkloadManagerClient interface { + // Lists Evaluations in a given project and location. + ListEvaluations(ctx context.Context, in *ListEvaluationsRequest, opts ...grpc.CallOption) (*ListEvaluationsResponse, error) + // Gets details of a single Evaluation. + GetEvaluation(ctx context.Context, in *GetEvaluationRequest, opts ...grpc.CallOption) (*Evaluation, error) + // Creates a new Evaluation in a given project and location. + CreateEvaluation(ctx context.Context, in *CreateEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Evaluation. + UpdateEvaluation(ctx context.Context, in *UpdateEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Evaluation. + DeleteEvaluation(ctx context.Context, in *DeleteEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Executions in a given project and location. + ListExecutions(ctx context.Context, in *ListExecutionsRequest, opts ...grpc.CallOption) (*ListExecutionsResponse, error) + // Gets details of a single Execution. + GetExecution(ctx context.Context, in *GetExecutionRequest, opts ...grpc.CallOption) (*Execution, error) + // Creates a new Execution in a given project and location. + RunEvaluation(ctx context.Context, in *RunEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Execution. + DeleteExecution(ctx context.Context, in *DeleteExecutionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists the result of a single evaluation. + ListExecutionResults(ctx context.Context, in *ListExecutionResultsRequest, opts ...grpc.CallOption) (*ListExecutionResultsResponse, error) + // Lists rules in a given project. + ListRules(ctx context.Context, in *ListRulesRequest, opts ...grpc.CallOption) (*ListRulesResponse, error) + // List all scanned resources for a single Execution. + ListScannedResources(ctx context.Context, in *ListScannedResourcesRequest, opts ...grpc.CallOption) (*ListScannedResourcesResponse, error) +} + +type workloadManagerClient struct { + cc grpc.ClientConnInterface +} + +func NewWorkloadManagerClient(cc grpc.ClientConnInterface) WorkloadManagerClient { + return &workloadManagerClient{cc} +} + +func (c *workloadManagerClient) ListEvaluations(ctx context.Context, in *ListEvaluationsRequest, opts ...grpc.CallOption) (*ListEvaluationsResponse, error) { + out := new(ListEvaluationsResponse) + err := c.cc.Invoke(ctx, WorkloadManager_ListEvaluations_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) GetEvaluation(ctx context.Context, in *GetEvaluationRequest, opts ...grpc.CallOption) (*Evaluation, error) { + out := new(Evaluation) + err := c.cc.Invoke(ctx, WorkloadManager_GetEvaluation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) CreateEvaluation(ctx context.Context, in *CreateEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, WorkloadManager_CreateEvaluation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) UpdateEvaluation(ctx context.Context, in *UpdateEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, WorkloadManager_UpdateEvaluation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) DeleteEvaluation(ctx context.Context, in *DeleteEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, WorkloadManager_DeleteEvaluation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) ListExecutions(ctx context.Context, in *ListExecutionsRequest, opts ...grpc.CallOption) (*ListExecutionsResponse, error) { + out := new(ListExecutionsResponse) + err := c.cc.Invoke(ctx, WorkloadManager_ListExecutions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) GetExecution(ctx context.Context, in *GetExecutionRequest, opts ...grpc.CallOption) (*Execution, error) { + out := new(Execution) + err := c.cc.Invoke(ctx, WorkloadManager_GetExecution_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) RunEvaluation(ctx context.Context, in *RunEvaluationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, WorkloadManager_RunEvaluation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) DeleteExecution(ctx context.Context, in *DeleteExecutionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, WorkloadManager_DeleteExecution_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) ListExecutionResults(ctx context.Context, in *ListExecutionResultsRequest, opts ...grpc.CallOption) (*ListExecutionResultsResponse, error) { + out := new(ListExecutionResultsResponse) + err := c.cc.Invoke(ctx, WorkloadManager_ListExecutionResults_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) ListRules(ctx context.Context, in *ListRulesRequest, opts ...grpc.CallOption) (*ListRulesResponse, error) { + out := new(ListRulesResponse) + err := c.cc.Invoke(ctx, WorkloadManager_ListRules_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *workloadManagerClient) ListScannedResources(ctx context.Context, in *ListScannedResourcesRequest, opts ...grpc.CallOption) (*ListScannedResourcesResponse, error) { + out := new(ListScannedResourcesResponse) + err := c.cc.Invoke(ctx, WorkloadManager_ListScannedResources_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WorkloadManagerServer is the server API for WorkloadManager service. +// All implementations should embed UnimplementedWorkloadManagerServer +// for forward compatibility +type WorkloadManagerServer interface { + // Lists Evaluations in a given project and location. + ListEvaluations(context.Context, *ListEvaluationsRequest) (*ListEvaluationsResponse, error) + // Gets details of a single Evaluation. + GetEvaluation(context.Context, *GetEvaluationRequest) (*Evaluation, error) + // Creates a new Evaluation in a given project and location. + CreateEvaluation(context.Context, *CreateEvaluationRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Evaluation. + UpdateEvaluation(context.Context, *UpdateEvaluationRequest) (*longrunningpb.Operation, error) + // Deletes a single Evaluation. + DeleteEvaluation(context.Context, *DeleteEvaluationRequest) (*longrunningpb.Operation, error) + // Lists Executions in a given project and location. + ListExecutions(context.Context, *ListExecutionsRequest) (*ListExecutionsResponse, error) + // Gets details of a single Execution. + GetExecution(context.Context, *GetExecutionRequest) (*Execution, error) + // Creates a new Execution in a given project and location. + RunEvaluation(context.Context, *RunEvaluationRequest) (*longrunningpb.Operation, error) + // Deletes a single Execution. + DeleteExecution(context.Context, *DeleteExecutionRequest) (*longrunningpb.Operation, error) + // Lists the result of a single evaluation. + ListExecutionResults(context.Context, *ListExecutionResultsRequest) (*ListExecutionResultsResponse, error) + // Lists rules in a given project. + ListRules(context.Context, *ListRulesRequest) (*ListRulesResponse, error) + // List all scanned resources for a single Execution. + ListScannedResources(context.Context, *ListScannedResourcesRequest) (*ListScannedResourcesResponse, error) +} + +// UnimplementedWorkloadManagerServer should be embedded to have forward compatible implementations. +type UnimplementedWorkloadManagerServer struct { +} + +func (UnimplementedWorkloadManagerServer) ListEvaluations(context.Context, *ListEvaluationsRequest) (*ListEvaluationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEvaluations not implemented") +} +func (UnimplementedWorkloadManagerServer) GetEvaluation(context.Context, *GetEvaluationRequest) (*Evaluation, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEvaluation not implemented") +} +func (UnimplementedWorkloadManagerServer) CreateEvaluation(context.Context, *CreateEvaluationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateEvaluation not implemented") +} +func (UnimplementedWorkloadManagerServer) UpdateEvaluation(context.Context, *UpdateEvaluationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateEvaluation not implemented") +} +func (UnimplementedWorkloadManagerServer) DeleteEvaluation(context.Context, *DeleteEvaluationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteEvaluation not implemented") +} +func (UnimplementedWorkloadManagerServer) ListExecutions(context.Context, *ListExecutionsRequest) (*ListExecutionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListExecutions not implemented") +} +func (UnimplementedWorkloadManagerServer) GetExecution(context.Context, *GetExecutionRequest) (*Execution, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetExecution not implemented") +} +func (UnimplementedWorkloadManagerServer) RunEvaluation(context.Context, *RunEvaluationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RunEvaluation not implemented") +} +func (UnimplementedWorkloadManagerServer) DeleteExecution(context.Context, *DeleteExecutionRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteExecution not implemented") +} +func (UnimplementedWorkloadManagerServer) ListExecutionResults(context.Context, *ListExecutionResultsRequest) (*ListExecutionResultsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListExecutionResults not implemented") +} +func (UnimplementedWorkloadManagerServer) ListRules(context.Context, *ListRulesRequest) (*ListRulesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRules not implemented") +} +func (UnimplementedWorkloadManagerServer) ListScannedResources(context.Context, *ListScannedResourcesRequest) (*ListScannedResourcesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListScannedResources not implemented") +} + +// UnsafeWorkloadManagerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WorkloadManagerServer will +// result in compilation errors. +type UnsafeWorkloadManagerServer interface { + mustEmbedUnimplementedWorkloadManagerServer() +} + +func RegisterWorkloadManagerServer(s grpc.ServiceRegistrar, srv WorkloadManagerServer) { + s.RegisterService(&WorkloadManager_ServiceDesc, srv) +} + +func _WorkloadManager_ListEvaluations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEvaluationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).ListEvaluations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_ListEvaluations_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).ListEvaluations(ctx, req.(*ListEvaluationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_GetEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetEvaluationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).GetEvaluation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_GetEvaluation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).GetEvaluation(ctx, req.(*GetEvaluationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_CreateEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateEvaluationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).CreateEvaluation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_CreateEvaluation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).CreateEvaluation(ctx, req.(*CreateEvaluationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_UpdateEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateEvaluationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).UpdateEvaluation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_UpdateEvaluation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).UpdateEvaluation(ctx, req.(*UpdateEvaluationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_DeleteEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteEvaluationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).DeleteEvaluation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_DeleteEvaluation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).DeleteEvaluation(ctx, req.(*DeleteEvaluationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_ListExecutions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListExecutionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).ListExecutions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_ListExecutions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).ListExecutions(ctx, req.(*ListExecutionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_GetExecution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExecutionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).GetExecution(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_GetExecution_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).GetExecution(ctx, req.(*GetExecutionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_RunEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RunEvaluationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).RunEvaluation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_RunEvaluation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).RunEvaluation(ctx, req.(*RunEvaluationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_DeleteExecution_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteExecutionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).DeleteExecution(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_DeleteExecution_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).DeleteExecution(ctx, req.(*DeleteExecutionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_ListExecutionResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListExecutionResultsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).ListExecutionResults(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_ListExecutionResults_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).ListExecutionResults(ctx, req.(*ListExecutionResultsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_ListRules_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRulesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).ListRules(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_ListRules_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).ListRules(ctx, req.(*ListRulesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _WorkloadManager_ListScannedResources_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListScannedResourcesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WorkloadManagerServer).ListScannedResources(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: WorkloadManager_ListScannedResources_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WorkloadManagerServer).ListScannedResources(ctx, req.(*ListScannedResourcesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// WorkloadManager_ServiceDesc is the grpc.ServiceDesc for WorkloadManager service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var WorkloadManager_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.workloadmanager.v1.WorkloadManager", + HandlerType: (*WorkloadManagerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListEvaluations", + Handler: _WorkloadManager_ListEvaluations_Handler, + }, + { + MethodName: "GetEvaluation", + Handler: _WorkloadManager_GetEvaluation_Handler, + }, + { + MethodName: "CreateEvaluation", + Handler: _WorkloadManager_CreateEvaluation_Handler, + }, + { + MethodName: "UpdateEvaluation", + Handler: _WorkloadManager_UpdateEvaluation_Handler, + }, + { + MethodName: "DeleteEvaluation", + Handler: _WorkloadManager_DeleteEvaluation_Handler, + }, + { + MethodName: "ListExecutions", + Handler: _WorkloadManager_ListExecutions_Handler, + }, + { + MethodName: "GetExecution", + Handler: _WorkloadManager_GetExecution_Handler, + }, + { + MethodName: "RunEvaluation", + Handler: _WorkloadManager_RunEvaluation_Handler, + }, + { + MethodName: "DeleteExecution", + Handler: _WorkloadManager_DeleteExecution_Handler, + }, + { + MethodName: "ListExecutionResults", + Handler: _WorkloadManager_ListExecutionResults_Handler, + }, + { + MethodName: "ListRules", + Handler: _WorkloadManager_ListRules_Handler, + }, + { + MethodName: "ListScannedResources", + Handler: _WorkloadManager_ListScannedResources_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/workloadmanager/v1/service.proto", +} diff --git a/workloadmanager/go.mod b/workloadmanager/go.mod new file mode 100644 index 000000000000..d3489d0e4c77 --- /dev/null +++ b/workloadmanager/go.mod @@ -0,0 +1,40 @@ +module cloud.google.com/go/workloadmanager + +go 1.24.0 + +require ( + cloud.google.com/go/longrunning v0.8.0 + github.com/googleapis/gax-go/v2 v2.17.0 + google.golang.org/api v0.266.0 + google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 + google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 + google.golang.org/grpc v1.79.1 + google.golang.org/protobuf v1.36.11 +) + +require ( + cloud.google.com/go v0.123.0 // indirect + cloud.google.com/go/auth v0.18.1 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect + cloud.google.com/go/compute/metadata v0.9.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/google/s2a-go v0.1.9 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.11 // indirect + go.opentelemetry.io/auto/sdk v1.2.1 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 // indirect + go.opentelemetry.io/otel v1.39.0 // indirect + go.opentelemetry.io/otel/metric v1.39.0 // indirect + go.opentelemetry.io/otel/trace v1.39.0 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/oauth2 v0.35.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/text v0.33.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 // indirect +) diff --git a/workloadmanager/go.sum b/workloadmanager/go.sum new file mode 100644 index 000000000000..01211f16ce3b --- /dev/null +++ b/workloadmanager/go.sum @@ -0,0 +1,92 @@ +cloud.google.com/go v0.123.0 h1:2NAUJwPR47q+E35uaJeYoNhuNEM9kM8SjgRgdeOJUSE= +cloud.google.com/go v0.123.0/go.mod h1:xBoMV08QcqUGuPW65Qfm1o9Y4zKZBpGS+7bImXLTAZU= +cloud.google.com/go/auth v0.18.1 h1:IwTEx92GFUo2pJ6Qea0EU3zYvKnTAeRCODxfA/G5UWs= +cloud.google.com/go/auth v0.18.1/go.mod h1:GfTYoS9G3CWpRA3Va9doKN9mjPGRS+v41jmZAhBzbrA= +cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= +cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= +cloud.google.com/go/compute/metadata v0.9.0 h1:pDUj4QMoPejqq20dK0Pg2N4yG9zIkYGdBtwLoEkH9Zs= +cloud.google.com/go/compute/metadata v0.9.0/go.mod h1:E0bWwX5wTnLPedCKqk3pJmVgCBSM6qQI1yTBdEb3C10= +cloud.google.com/go/longrunning v0.8.0 h1:LiKK77J3bx5gDLi4SMViHixjD2ohlkwBi+mKA7EhfW8= +cloud.google.com/go/longrunning v0.8.0/go.mod h1:UmErU2Onzi+fKDg2gR7dusz11Pe26aknR4kHmJJqIfk= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5 h1:6xNmx7iTtyBRev0+D/Tv1FZd4SCg8axKApyNyRsAt/w= +github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.14.0 h1:hbG2kr4RuFj222B6+7T83thSPqLjwBIfQawTkC++2HA= +github.com/envoyproxy/go-control-plane/envoy v1.36.0 h1:yg/JjO5E7ubRyKX3m07GF3reDNEnfOboJ0QySbH736g= +github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98= +github.com/envoyproxy/protoc-gen-validate v1.3.0 h1:TvGH1wof4H33rezVKWSpqKz5NXWg5VPuZ0uONDT6eb4= +github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= +github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= +github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.11 h1:vAe81Msw+8tKUxi2Dqh/NZMz7475yUvmRIkXr4oN2ao= +github.com/googleapis/enterprise-certificate-proxy v0.3.11/go.mod h1:RFV7MUdlb7AgEq2v7FmMCfeSMCllAzWxFgRdusoGks8= +github.com/googleapis/gax-go/v2 v2.17.0 h1:RksgfBpxqff0EZkDWYuz9q/uWsTVz+kf43LsZ1J6SMc= +github.com/googleapis/gax-go/v2 v2.17.0/go.mod h1:mzaqghpQp4JDh3HvADwrat+6M3MOIDp5YKHhb9PAgDY= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64= +go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 h1:q4XOmH/0opmeuJtPsbFNivyl7bCt7yRBbeEm2sC/XtQ= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0/go.mod h1:snMWehoOh2wsEwnvvwtDyFCxVeDAODenXHtn5vzrKjo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0 h1:F7Jx+6hwnZ41NSFTO5q4LYDtJRXBf2PD0rNBkeB/lus= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0/go.mod h1:UHB22Z8QsdRDrnAtX4PntOl36ajSxcdUMt1sF7Y6E7Q= +go.opentelemetry.io/otel v1.39.0 h1:8yPrr/S0ND9QEfTfdP9V+SiwT4E0G7Y5MO7p85nis48= +go.opentelemetry.io/otel v1.39.0/go.mod h1:kLlFTywNWrFyEdH0oj2xK0bFYZtHRYUdv1NklR/tgc8= +go.opentelemetry.io/otel/metric v1.39.0 h1:d1UzonvEZriVfpNKEVmHXbdf909uGTOQjA0HF0Ls5Q0= +go.opentelemetry.io/otel/metric v1.39.0/go.mod h1:jrZSWL33sD7bBxg1xjrqyDjnuzTUB0x1nBERXd7Ftcs= +go.opentelemetry.io/otel/sdk v1.39.0 h1:nMLYcjVsvdui1B/4FRkwjzoRVsMK8uL/cj0OyhKzt18= +go.opentelemetry.io/otel/sdk v1.39.0/go.mod h1:vDojkC4/jsTJsE+kh+LXYQlbL8CgrEcwmt1ENZszdJE= +go.opentelemetry.io/otel/sdk/metric v1.39.0 h1:cXMVVFVgsIf2YL6QkRF4Urbr/aMInf+2WKg+sEJTtB8= +go.opentelemetry.io/otel/sdk/metric v1.39.0/go.mod h1:xq9HEVH7qeX69/JnwEfp6fVq5wosJsY1mt4lLfYdVew= +go.opentelemetry.io/otel/trace v1.39.0 h1:2d2vfpEDmCJ5zVYz7ijaJdOF59xLomrvj7bjt6/qCJI= +go.opentelemetry.io/otel/trace v1.39.0/go.mod h1:88w4/PnZSazkGzz/w84VHpQafiU4EtqqlVdxWy+rNOA= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= +golang.org/x/oauth2 v0.35.0 h1:Mv2mzuHuZuY2+bkyWXIHMfhNdJAdwW3FuWeCPYN5GVQ= +golang.org/x/oauth2 v0.35.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= +golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI= +golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= +google.golang.org/api v0.266.0 h1:hco+oNCf9y7DmLeAtHJi/uBAY7n/7XC9mZPxu1ROiyk= +google.golang.org/api v0.266.0/go.mod h1:Jzc0+ZfLnyvXma3UtaTl023TdhZu6OMBP9tJ+0EmFD0= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57 h1:uZSB/r2MjH9IsqpG2vRNSV1Juteix90oHe8oTcLW9tk= +google.golang.org/genproto v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:nGuPfp0lnDJcJD0J47StV0Skgnw3qMSQhjsLKiejq5Y= +google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0= +google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20 h1:Jr5R2J6F6qWyzINc+4AM8t5pfUz6beZpHp678GNrMbE= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260203192932-546029d2fa20/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= +google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/workloadmanager/internal/version.go b/workloadmanager/internal/version.go new file mode 100644 index 000000000000..af6ecf6a609a --- /dev/null +++ b/workloadmanager/internal/version.go @@ -0,0 +1,20 @@ +// Copyright 2026 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 gapicgen. DO NOT EDIT. + +package internal + +// Version is the current tagged release of the library. +const Version = "0.0.0"