diff --git a/.librarian/state.yaml b/.librarian/state.yaml index 9ae939368afe..9c4332cd4bbb 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -4522,6 +4522,28 @@ libraries: release_exclude_paths: - internal/generated/snippets/run/ tag_format: '{id}/v{version}' + - id: saasplatform + version: 0.0.0 + last_generated_commit: 53af3b727f84acc34e31c23f3b6e7b8aa4b7e837 + apis: + - path: google/cloud/saasplatform/saasservicemgmt/v1beta1 + service_config: saasservicemgmt_v1beta1.yaml + source_roots: + - saasplatform + - internal/generated/snippets/saasplatform + preserve_regex: [] + remove_regex: + - ^internal/generated/snippets/saasplatform/ + - ^saasplatform/saasservicemgmt/apiv1beta1/[^/]*_client\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/[^/]*_client_example_go123_test\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/[^/]*_client_example_test\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/auxiliary\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/auxiliary_go123\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/doc\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/gapic_metadata\.json$ + - ^saasplatform/saasservicemgmt/apiv1beta1/helpers\.go$ + - ^saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/.*$ + tag_format: '{id}/v{version}' - id: scheduler version: 1.11.8 last_generated_commit: c288189b43c016dd3cf1ec73ce3cadee8b732f07 diff --git a/go.work b/go.work index 18a6ceb991de..c2d46b401d52 100644 --- a/go.work +++ b/go.work @@ -155,6 +155,7 @@ use ( ./resourcemanager ./retail ./run + ./saasplatform ./scheduler ./secretmanager ./securesourcemanager diff --git a/go.work.sum b/go.work.sum index a45710d76d46..fbff35cc125b 100644 --- a/go.work.sum +++ b/go.work.sum @@ -572,6 +572,7 @@ google.golang.org/genproto/googleapis/api v0.0.0-20240930140551-af27646dc61f/go. google.golang.org/genproto/googleapis/api v0.0.0-20250227231956-55c901821b1e h1:nsxey/MfoGzYNduN0NN/+hqP9iiCIYsrVbXb/8hjFM8= google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA= google.golang.org/genproto/googleapis/api v0.0.0-20250826171959-ef028d996bc1/go.mod h1:xUjFWUnWDpZ/C0Gu0qloASKFb6f8/QXiiXhSPFsD668= +google.golang.org/genproto/googleapis/api v0.0.0-20251029180050-ab9386a59fda/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo= google.golang.org/genproto/googleapis/bytestream v0.0.0-20231120223509-83a465c0220f/go.mod h1:iIgEblxoG4klcXsG0d9cpoxJ4xndv6+1FkDROCHhPRI= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240102182953-50ed04b92917/go.mod h1:O9TvT7A9NLgdqqF0JJXJ+axpaoYiEb8txGmkvy+AvLc= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240513163218-0867130af1f8/go.mod h1:RCpt0+3mpEDPldc32vXBM8ADXlFL95T8Chxx0nv0/zE= @@ -581,6 +582,7 @@ google.golang.org/genproto/googleapis/bytestream v0.0.0-20250603155806-513f23925 google.golang.org/genproto/googleapis/bytestream v0.0.0-20250818200422-3122310a409c/go.mod h1:1kGGe25NDrNJYgta9Rp2QLLXWS1FLVMMXNvihbhK0iE= google.golang.org/genproto/googleapis/bytestream v0.0.0-20250908214217-97024824d090/go.mod h1:Zm0W1CckZuSE8rNxJRJ0+pbZP3UOe8WQpyr0KGPtjAQ= google.golang.org/genproto/googleapis/bytestream v0.0.0-20251014184007-4626949a642f/go.mod h1:ejCb7yLmK6GCVHp5qpeKbm4KZew/ldg+9b8kq5MONgk= +google.golang.org/genproto/googleapis/bytestream v0.0.0-20251029180050-ab9386a59fda/go.mod h1:ejCb7yLmK6GCVHp5qpeKbm4KZew/ldg+9b8kq5MONgk= google.golang.org/genproto/googleapis/rpc v0.0.0-20230725213213-b022f6e96895/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= google.golang.org/genproto/googleapis/rpc v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index 8c27654f38ad..da6e6b76d3ec 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -568,3 +568,5 @@ replace cloud.google.com/go/capacityplanner => ../../../capacityplanner replace cloud.google.com/go/locationfinder => ../../../locationfinder replace cloud.google.com/go/gkerecommender => ../../../gkerecommender + +replace cloud.google.com/go/saasplatform => ../../../saasplatform diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateRelease/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateRelease/main.go new file mode 100644 index 000000000000..9d3b0b82376f --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateRelease/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateRelease_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateReleaseRequest. + } + resp, err := c.CreateRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateRelease_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateSaas/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateSaas/main.go new file mode 100644 index 000000000000..3b42ee37a340 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateSaas/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateSaas_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateSaasRequest. + } + resp, err := c.CreateSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateSaas_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateTenant/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateTenant/main.go new file mode 100644 index 000000000000..d95bdabdc1b5 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateTenant/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateTenant_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateTenantRequest. + } + resp, err := c.CreateTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateTenant_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnit/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnit/main.go new file mode 100644 index 000000000000..747445efd497 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnit/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnit_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitRequest. + } + resp, err := c.CreateUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnit_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitKind/main.go new file mode 100644 index 000000000000..1226d9d891a6 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitKindRequest. + } + resp, err := c.CreateUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitOperation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitOperation/main.go new file mode 100644 index 000000000000..8305a534b081 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/CreateUnitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitOperation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitOperationRequest. + } + resp, err := c.CreateUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitOperation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteRelease/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteRelease/main.go new file mode 100644 index 000000000000..556fc0b120a5 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteRelease/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteRelease_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteReleaseRequest. + } + err = c.DeleteRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteRelease_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteSaas/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteSaas/main.go new file mode 100644 index 000000000000..90fda2dcdfcc --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteSaas/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteSaas_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteSaasRequest. + } + err = c.DeleteSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteSaas_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteTenant/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteTenant/main.go new file mode 100644 index 000000000000..2f7a93d09ebb --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteTenant/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteTenant_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteTenantRequest. + } + err = c.DeleteTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteTenant_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnit/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnit/main.go new file mode 100644 index 000000000000..dd728d12706d --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnit/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnit_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitRequest. + } + err = c.DeleteUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnit_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitKind/main.go new file mode 100644 index 000000000000..64a9e1f4bbc0 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitKind/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitKindRequest. + } + err = c.DeleteUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitOperation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitOperation/main.go new file mode 100644 index 000000000000..38fc47b18a37 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/DeleteUnitOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitOperation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitOperationRequest. + } + err = c.DeleteUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitOperation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetLocation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetLocation/main.go new file mode 100644 index 000000000000..1c960206c792 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetLocation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + 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 := saasservicemgmt.NewSaasDeploymentsClient(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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetLocation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetRelease/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetRelease/main.go new file mode 100644 index 000000000000..6f2170e743b0 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetRelease/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetRelease_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetReleaseRequest. + } + resp, err := c.GetRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetRelease_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetSaas/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetSaas/main.go new file mode 100644 index 000000000000..946fec174a37 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetSaas/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetSaas_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetSaasRequest. + } + resp, err := c.GetSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetSaas_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetTenant/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetTenant/main.go new file mode 100644 index 000000000000..e91867f5e557 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetTenant/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetTenant_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetTenantRequest. + } + resp, err := c.GetTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetTenant_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnit/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnit/main.go new file mode 100644 index 000000000000..48ca1fc0e085 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnit/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnit_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitRequest. + } + resp, err := c.GetUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnit_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitKind/main.go new file mode 100644 index 000000000000..01e70f94d32f --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitKindRequest. + } + resp, err := c.GetUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitOperation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitOperation/main.go new file mode 100644 index 000000000000..9842f5382f3d --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/GetUnitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitOperation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitOperationRequest. + } + resp, err := c.GetUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitOperation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListLocations/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListLocations/main.go new file mode 100644 index 000000000000..08b5148ad682 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListLocations_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + "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 := saasservicemgmt.NewSaasDeploymentsClient(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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListLocations_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListReleases/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListReleases/main.go new file mode 100644 index 000000000000..8784e2932103 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListReleases/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListReleases_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListReleasesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListReleasesRequest. + } + it := c.ListReleases(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.(*saasservicemgmtpb.ListReleasesResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListReleases_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListSaas/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListSaas/main.go new file mode 100644 index 000000000000..4fdda8de9312 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListSaas/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListSaas_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListSaasRequest. + } + it := c.ListSaas(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.(*saasservicemgmtpb.ListSaasResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListSaas_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListTenants/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListTenants/main.go new file mode 100644 index 000000000000..be55b0dd0927 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListTenants/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListTenants_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListTenantsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListTenantsRequest. + } + it := c.ListTenants(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.(*saasservicemgmtpb.ListTenantsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListTenants_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitKinds/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitKinds/main.go new file mode 100644 index 000000000000..fff9e7eb1349 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitKinds/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitKinds_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitKindsRequest. + } + it := c.ListUnitKinds(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.(*saasservicemgmtpb.ListUnitKindsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitKinds_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitOperations/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitOperations/main.go new file mode 100644 index 000000000000..3afd800271d0 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnitOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitOperations_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitOperationsRequest. + } + it := c.ListUnitOperations(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.(*saasservicemgmtpb.ListUnitOperationsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitOperations_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnits/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnits/main.go new file mode 100644 index 000000000000..2fdba1b6f343 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/ListUnits/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnits_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitsRequest. + } + it := c.ListUnits(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.(*saasservicemgmtpb.ListUnitsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnits_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateRelease/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateRelease/main.go new file mode 100644 index 000000000000..50ab57c21db4 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateRelease/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateRelease_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateReleaseRequest. + } + resp, err := c.UpdateRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateRelease_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateSaas/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateSaas/main.go new file mode 100644 index 000000000000..9928a3fefb2a --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateSaas/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateSaas_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateSaasRequest. + } + resp, err := c.UpdateSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateSaas_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateTenant/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateTenant/main.go new file mode 100644 index 000000000000..e61128372ac9 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateTenant/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateTenant_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateTenantRequest. + } + resp, err := c.UpdateTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateTenant_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnit/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnit/main.go new file mode 100644 index 000000000000..471db9a6c016 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnit/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnit_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitRequest. + } + resp, err := c.UpdateUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnit_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitKind/main.go new file mode 100644 index 000000000000..f4fdde31ee7f --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitKindRequest. + } + resp, err := c.UpdateUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitOperation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitOperation/main.go new file mode 100644 index 000000000000..d98ea01cefa7 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasDeploymentsClient/UpdateUnitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitOperation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitOperationRequest. + } + resp, err := c.UpdateUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitOperation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRollout/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRollout/main.go new file mode 100644 index 000000000000..2802d3988abb --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRollout/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRollout_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateRolloutRequest. + } + resp, err := c.CreateRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRollout_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRolloutKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRolloutKind/main.go new file mode 100644 index 000000000000..7f4bec15b3df --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/CreateRolloutKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRolloutKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateRolloutKindRequest. + } + resp, err := c.CreateRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRolloutKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRollout/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRollout/main.go new file mode 100644 index 000000000000..93847963b725 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRollout/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRollout_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteRolloutRequest. + } + err = c.DeleteRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRollout_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRolloutKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRolloutKind/main.go new file mode 100644 index 000000000000..78784f7353d0 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/DeleteRolloutKind/main.go @@ -0,0 +1,51 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRolloutKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteRolloutKindRequest. + } + err = c.DeleteRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRolloutKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetLocation/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetLocation/main.go new file mode 100644 index 000000000000..a30b42dcd8eb --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_GetLocation_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + 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 := saasservicemgmt.NewSaasRolloutsClient(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 saasservicemgmt_v1beta1_generated_SaasRollouts_GetLocation_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRollout/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRollout/main.go new file mode 100644 index 000000000000..5ea3a5fc0bc4 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRollout/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_GetRollout_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetRolloutRequest. + } + resp, err := c.GetRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_GetRollout_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRolloutKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRolloutKind/main.go new file mode 100644 index 000000000000..145e9129542f --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/GetRolloutKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_GetRolloutKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetRolloutKindRequest. + } + resp, err := c.GetRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_GetRolloutKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListLocations/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListLocations/main.go new file mode 100644 index 000000000000..7b940ae3f3fd --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_ListLocations_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + "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 := saasservicemgmt.NewSaasRolloutsClient(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 saasservicemgmt_v1beta1_generated_SaasRollouts_ListLocations_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRolloutKinds/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRolloutKinds/main.go new file mode 100644 index 000000000000..0fe8091deebd --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRolloutKinds/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_ListRolloutKinds_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutKindsRequest. + } + it := c.ListRolloutKinds(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.(*saasservicemgmtpb.ListRolloutKindsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_ListRolloutKinds_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRollouts/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRollouts/main.go new file mode 100644 index 000000000000..b104267669f1 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/ListRollouts/main.go @@ -0,0 +1,66 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_ListRollouts_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutsRequest. + } + it := c.ListRollouts(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.(*saasservicemgmtpb.ListRolloutsResponse) + } +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_ListRollouts_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRollout/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRollout/main.go new file mode 100644 index 000000000000..3f57dd645e6b --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRollout/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRollout_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateRolloutRequest. + } + resp, err := c.UpdateRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRollout_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRolloutKind/main.go b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRolloutKind/main.go new file mode 100644 index 000000000000..9e34120de38c --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/SaasRolloutsClient/UpdateRolloutKind/main.go @@ -0,0 +1,53 @@ +// Copyright 2025 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 saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRolloutKind_sync] + +package main + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" +) + +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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateRolloutKindRequest. + } + resp, err := c.UpdateRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRolloutKind_sync] diff --git a/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/snippet_metadata.google.cloud.saasplatform.saasservicemgmt.v1beta1.json b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/snippet_metadata.google.cloud.saasplatform.saasservicemgmt.v1beta1.json new file mode 100644 index 000000000000..ead72e8a4937 --- /dev/null +++ b/internal/generated/snippets/saasplatform/saasservicemgmt/apiv1beta1/snippet_metadata.google.cloud.saasplatform.saasservicemgmt.v1beta1.json @@ -0,0 +1,2031 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.saasplatform.saasservicemgmt.v1beta1", + "version": "v1beta1" + } + ] + }, + "snippets": [ + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateRelease_sync", + "title": "saasservicemgmt CreateRelease Sample", + "description": "CreateRelease create a new release.", + "file": "SaasDeploymentsClient/CreateRelease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateRelease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateReleaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Release", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateRelease", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateSaas_sync", + "title": "saasservicemgmt CreateSaas Sample", + "description": "CreateSaas create a new saas.", + "file": "SaasDeploymentsClient/CreateSaas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateSaas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateSaasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Saas", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateSaas", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateTenant_sync", + "title": "saasservicemgmt CreateTenant Sample", + "description": "CreateTenant create a new tenant.", + "file": "SaasDeploymentsClient/CreateTenant/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateTenant", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateTenantRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Tenant", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateTenant", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnit_sync", + "title": "saasservicemgmt CreateUnit Sample", + "description": "CreateUnit create a new unit.", + "file": "SaasDeploymentsClient/CreateUnit/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateUnit", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateUnitRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Unit", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnit", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitKind_sync", + "title": "saasservicemgmt CreateUnitKind Sample", + "description": "CreateUnitKind create a new unit kind.", + "file": "SaasDeploymentsClient/CreateUnitKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateUnitKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateUnitKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitKind", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitKind", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_CreateUnitOperation_sync", + "title": "saasservicemgmt CreateUnitOperation Sample", + "description": "CreateUnitOperation create a new unit operation.", + "file": "SaasDeploymentsClient/CreateUnitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.CreateUnitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateUnitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitOperation", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "CreateUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitOperation", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteRelease_sync", + "title": "saasservicemgmt DeleteRelease Sample", + "description": "DeleteRelease delete a single release.", + "file": "SaasDeploymentsClient/DeleteRelease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteRelease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteReleaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteRelease", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteSaas_sync", + "title": "saasservicemgmt DeleteSaas Sample", + "description": "DeleteSaas delete a single saas.", + "file": "SaasDeploymentsClient/DeleteSaas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteSaas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteSaasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteSaas", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteTenant_sync", + "title": "saasservicemgmt DeleteTenant Sample", + "description": "DeleteTenant delete a single tenant.", + "file": "SaasDeploymentsClient/DeleteTenant/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteTenant", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteTenantRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteTenant", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnit_sync", + "title": "saasservicemgmt DeleteUnit Sample", + "description": "DeleteUnit delete a single unit.", + "file": "SaasDeploymentsClient/DeleteUnit/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteUnit", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteUnitRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnit", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitKind_sync", + "title": "saasservicemgmt DeleteUnitKind Sample", + "description": "DeleteUnitKind delete a single unit kind.", + "file": "SaasDeploymentsClient/DeleteUnitKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteUnitKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteUnitKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitKind", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_DeleteUnitOperation_sync", + "title": "saasservicemgmt DeleteUnitOperation Sample", + "description": "DeleteUnitOperation delete a single unit operation.", + "file": "SaasDeploymentsClient/DeleteUnitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.DeleteUnitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteUnitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "DeleteUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitOperation", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetLocation_sync", + "title": "saasservicemgmt GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "SaasDeploymentsClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "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": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetRelease_sync", + "title": "saasservicemgmt GetRelease Sample", + "description": "GetRelease retrieve a single release.", + "file": "SaasDeploymentsClient/GetRelease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetRelease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetReleaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Release", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetRelease", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetSaas_sync", + "title": "saasservicemgmt GetSaas Sample", + "description": "GetSaas retrieve a single saas.", + "file": "SaasDeploymentsClient/GetSaas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetSaas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetSaasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Saas", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetSaas", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetTenant_sync", + "title": "saasservicemgmt GetTenant Sample", + "description": "GetTenant retrieve a single tenant.", + "file": "SaasDeploymentsClient/GetTenant/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetTenant", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetTenantRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Tenant", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetTenant", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnit_sync", + "title": "saasservicemgmt GetUnit Sample", + "description": "GetUnit retrieve a single unit.", + "file": "SaasDeploymentsClient/GetUnit/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetUnit", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetUnitRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Unit", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnit", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitKind_sync", + "title": "saasservicemgmt GetUnitKind Sample", + "description": "GetUnitKind retrieve a single unit kind.", + "file": "SaasDeploymentsClient/GetUnitKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetUnitKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetUnitKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitKind", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitKind", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_GetUnitOperation_sync", + "title": "saasservicemgmt GetUnitOperation Sample", + "description": "GetUnitOperation retrieve a single unit operation.", + "file": "SaasDeploymentsClient/GetUnitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.GetUnitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetUnitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitOperation", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "GetUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitOperation", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListLocations_sync", + "title": "saasservicemgmt ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "SaasDeploymentsClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "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": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListReleases_sync", + "title": "saasservicemgmt ListReleases Sample", + "description": "ListReleases retrieve a collection of releases.", + "file": "SaasDeploymentsClient/ListReleases/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListReleases", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListReleases", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListReleasesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ReleaseIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListReleases", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListReleases", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListSaas_sync", + "title": "saasservicemgmt ListSaas Sample", + "description": "ListSaas retrieve a collection of saas.", + "file": "SaasDeploymentsClient/ListSaas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListSaas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListSaasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SaasIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListSaas", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListTenants_sync", + "title": "saasservicemgmt ListTenants Sample", + "description": "ListTenants retrieve a collection of tenants.", + "file": "SaasDeploymentsClient/ListTenants/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListTenants", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListTenants", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListTenantsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "TenantIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListTenants", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListTenants", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitKinds_sync", + "title": "saasservicemgmt ListUnitKinds Sample", + "description": "ListUnitKinds retrieve a collection of unit kinds.", + "file": "SaasDeploymentsClient/ListUnitKinds/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListUnitKinds", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListUnitKinds", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListUnitKindsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UnitKindIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListUnitKinds", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitKinds", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnitOperations_sync", + "title": "saasservicemgmt ListUnitOperations Sample", + "description": "ListUnitOperations retrieve a collection of unit operations.", + "file": "SaasDeploymentsClient/ListUnitOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListUnitOperations", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListUnitOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListUnitOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UnitOperationIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListUnitOperations", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitOperations", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_ListUnits_sync", + "title": "saasservicemgmt ListUnits Sample", + "description": "ListUnits retrieve a collection of units.", + "file": "SaasDeploymentsClient/ListUnits/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListUnits", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.ListUnits", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListUnitsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UnitIterator", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "ListUnits", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnits", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateRelease_sync", + "title": "saasservicemgmt UpdateRelease Sample", + "description": "UpdateRelease update a single release.", + "file": "SaasDeploymentsClient/UpdateRelease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateRelease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateReleaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Release", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateRelease", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateRelease", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateSaas_sync", + "title": "saasservicemgmt UpdateSaas Sample", + "description": "UpdateSaas update a single saas.", + "file": "SaasDeploymentsClient/UpdateSaas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateSaas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateSaasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Saas", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateSaas", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateSaas", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateTenant_sync", + "title": "saasservicemgmt UpdateTenant Sample", + "description": "UpdateTenant update a single tenant.", + "file": "SaasDeploymentsClient/UpdateTenant/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateTenant", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateTenantRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Tenant", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateTenant", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateTenant", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnit_sync", + "title": "saasservicemgmt UpdateUnit Sample", + "description": "UpdateUnit update a single unit.", + "file": "SaasDeploymentsClient/UpdateUnit/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateUnit", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateUnitRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Unit", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateUnit", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnit", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitKind_sync", + "title": "saasservicemgmt UpdateUnitKind Sample", + "description": "UpdateUnitKind update a single unit kind.", + "file": "SaasDeploymentsClient/UpdateUnitKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateUnitKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateUnitKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitKind", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateUnitKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitKind", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasDeployments_UpdateUnitOperation_sync", + "title": "saasservicemgmt UpdateUnitOperation Sample", + "description": "UpdateUnitOperation update a single unit operation.", + "file": "SaasDeploymentsClient/UpdateUnitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient.UpdateUnitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateUnitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.UnitOperation", + "client": { + "shortName": "SaasDeploymentsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeploymentsClient" + }, + "method": { + "shortName": "UpdateUnitOperation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitOperation", + "service": { + "shortName": "SaasDeployments", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRollout_sync", + "title": "saasservicemgmt CreateRollout Sample", + "description": "CreateRollout create a new rollout.", + "file": "SaasRolloutsClient/CreateRollout/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.CreateRollout", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateRolloutRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Rollout", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "CreateRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRollout", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_CreateRolloutKind_sync", + "title": "saasservicemgmt CreateRolloutKind Sample", + "description": "CreateRolloutKind create a new rollout kind.", + "file": "SaasRolloutsClient/CreateRolloutKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.CreateRolloutKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.CreateRolloutKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.RolloutKind", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "CreateRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRolloutKind", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRollout_sync", + "title": "saasservicemgmt DeleteRollout Sample", + "description": "DeleteRollout delete a single rollout.", + "file": "SaasRolloutsClient/DeleteRollout/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.DeleteRollout", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteRolloutRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "DeleteRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRollout", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_DeleteRolloutKind_sync", + "title": "saasservicemgmt DeleteRolloutKind Sample", + "description": "DeleteRolloutKind delete a single rollout kind.", + "file": "SaasRolloutsClient/DeleteRolloutKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.DeleteRolloutKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.DeleteRolloutKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "DeleteRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRolloutKind", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_GetLocation_sync", + "title": "saasservicemgmt GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "SaasRolloutsClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "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": "saasservicemgmt_v1beta1_generated_SaasRollouts_GetRollout_sync", + "title": "saasservicemgmt GetRollout Sample", + "description": "GetRollout retrieve a single rollout.", + "file": "SaasRolloutsClient/GetRollout/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.GetRollout", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetRolloutRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Rollout", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "GetRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRollout", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_GetRolloutKind_sync", + "title": "saasservicemgmt GetRolloutKind Sample", + "description": "GetRolloutKind retrieve a single rollout kind.", + "file": "SaasRolloutsClient/GetRolloutKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.GetRolloutKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.GetRolloutKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.RolloutKind", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "GetRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRolloutKind", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_ListLocations_sync", + "title": "saasservicemgmt ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "SaasRolloutsClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "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": "saasservicemgmt_v1beta1_generated_SaasRollouts_ListRolloutKinds_sync", + "title": "saasservicemgmt ListRolloutKinds Sample", + "description": "ListRolloutKinds retrieve a collection of rollout kinds.", + "file": "SaasRolloutsClient/ListRolloutKinds/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRolloutKinds", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.ListRolloutKinds", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListRolloutKindsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RolloutKindIterator", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "ListRolloutKinds", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRolloutKinds", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_ListRollouts_sync", + "title": "saasservicemgmt ListRollouts Sample", + "description": "ListRollouts retrieve a collection of rollouts.", + "file": "SaasRolloutsClient/ListRollouts/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.ListRollouts", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.ListRolloutsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RolloutIterator", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "ListRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRollouts", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRollout_sync", + "title": "saasservicemgmt UpdateRollout Sample", + "description": "UpdateRollout update a single rollout.", + "file": "SaasRolloutsClient/UpdateRollout/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.UpdateRollout", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateRolloutRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.Rollout", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "UpdateRollout", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRollout", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "saasservicemgmt_v1beta1_generated_SaasRollouts_UpdateRolloutKind_sync", + "title": "saasservicemgmt UpdateRolloutKind Sample", + "description": "UpdateRolloutKind update a single rollout kind.", + "file": "SaasRolloutsClient/UpdateRolloutKind/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient.UpdateRolloutKind", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "saasservicemgmtpb.UpdateRolloutKindRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*saasservicemgmtpb.RolloutKind", + "client": { + "shortName": "SaasRolloutsClient", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRolloutsClient" + }, + "method": { + "shortName": "UpdateRolloutKind", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRolloutKind", + "service": { + "shortName": "SaasRollouts", + "fullName": "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/saasplatform/CHANGES.md b/saasplatform/CHANGES.md new file mode 100644 index 000000000000..b671f0bbcdd2 --- /dev/null +++ b/saasplatform/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/saasplatform/README.md b/saasplatform/README.md new file mode 100644 index 000000000000..b7d214ecb579 --- /dev/null +++ b/saasplatform/README.md @@ -0,0 +1,55 @@ +# SaaS Runtime API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/saasplatform.svg)](https://pkg.go.dev/cloud.google.com/go/saasplatform) + +Go Client Library for SaaS Runtime API. + +## Install + +```bash +go get cloud.google.com/go/saasplatform +``` + +## 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 who's 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 +recommend 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/saasplatform/go.mod b/saasplatform/go.mod new file mode 100644 index 000000000000..fbd076b89eec --- /dev/null +++ b/saasplatform/go.mod @@ -0,0 +1,37 @@ +module cloud.google.com/go/saasplatform + +go 1.24.0 + +require ( + github.com/googleapis/gax-go/v2 v2.15.0 + google.golang.org/api v0.255.0 + google.golang.org/genproto v0.0.0-20251103181224-f26f9409b101 + google.golang.org/genproto/googleapis/api v0.0.0-20251103181224-f26f9409b101 + google.golang.org/grpc v1.76.0 + google.golang.org/protobuf v1.36.10 +) + +require ( + cloud.google.com/go/auth v0.17.0 // indirect + cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect + cloud.google.com/go/compute/metadata v0.9.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.6 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // 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.37.0 // indirect + go.opentelemetry.io/otel/metric v1.37.0 // indirect + go.opentelemetry.io/otel/trace v1.37.0 // indirect + golang.org/x/crypto v0.43.0 // indirect + golang.org/x/net v0.46.0 // indirect + golang.org/x/oauth2 v0.32.0 // indirect + golang.org/x/sync v0.17.0 // indirect + golang.org/x/sys v0.37.0 // indirect + golang.org/x/text v0.30.0 // indirect + golang.org/x/time v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda // indirect +) diff --git a/saasplatform/go.sum b/saasplatform/go.sum new file mode 100644 index 000000000000..74c3d7a2b079 --- /dev/null +++ b/saasplatform/go.sum @@ -0,0 +1,86 @@ +cloud.google.com/go/auth v0.17.0 h1:74yCm7hCj2rUyyAocqnFzsAYXgJhrG26XCFimrc/Kz4= +cloud.google.com/go/auth v0.17.0/go.mod h1:6wv/t5/6rOPAX4fJiRjKkJCvswLwdet7G8+UGXt7nCQ= +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= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443 h1:aQ3y1lwWyqYPiWZThqv1aFbZMiM9vblcSArJRf2Irls= +github.com/cncf/xds/go v0.0.0-20250501225837-2ac532fd4443/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +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.4 h1:zEqyPVyku6IvWCFwux4x9RxkLOMUL+1vC9xUFv5l2/M= +github.com/envoyproxy/go-control-plane/envoy v1.32.4 h1:jb83lalDRZSpPWW2Z7Mck/8kXZ5CQAFYVjQcdVIr83A= +github.com/envoyproxy/go-control-plane/envoy v1.32.4/go.mod h1:Gzjc5k8JcJswLjAx1Zm+wSYE20UrLtt7JZMWiWQXQEw= +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/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.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= +github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= +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.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +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.37.0 h1:9zhNfelUvx0KBfu/gb+ZgeAfAgtWrfHJZcAqFC228wQ= +go.opentelemetry.io/otel v1.37.0/go.mod h1:ehE/umFRLnuLa/vSccNq9oS1ErUlkkK71gMcN34UG8I= +go.opentelemetry.io/otel/metric v1.37.0 h1:mvwbQS5m0tbmqML4NqK+e3aDiO02vsf/WgbsdpcPoZE= +go.opentelemetry.io/otel/metric v1.37.0/go.mod h1:04wGrZurHYKOc+RKeye86GwKiTb9FKm1WHtO+4EVr2E= +go.opentelemetry.io/otel/sdk v1.37.0 h1:ItB0QUqnjesGRvNcmAcU0LyvkVyGJ2xftD29bWdDvKI= +go.opentelemetry.io/otel/sdk v1.37.0/go.mod h1:VredYzxUvuo2q3WRcDnKDjbdvmO0sCzOvVAiY+yUkAg= +go.opentelemetry.io/otel/sdk/metric v1.37.0 h1:90lI228XrB9jCMuSdA0673aubgRobVZFhbjxHHspCPc= +go.opentelemetry.io/otel/sdk/metric v1.37.0/go.mod h1:cNen4ZWfiD37l5NhS+Keb5RXVWZWpRE+9WyVCpbo5ps= +go.opentelemetry.io/otel/trace v1.37.0 h1:HLdcFNbRQBE2imdSEgm/kwqmQj1Or1l/7bW6mxVK7z4= +go.opentelemetry.io/otel/trace v1.37.0/go.mod h1:TlgrlQ+PtQO5XFerSPUYG0JSgGyryXewPGyayAWSBS0= +golang.org/x/crypto v0.43.0 h1:dduJYIi3A3KOfdGOHX8AVZ/jGiyPa3IbBozJ5kNuE04= +golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/net v0.46.0 h1:giFlY12I07fugqwPuWJi68oOnpfqFnJIJzaIIm2JVV4= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= +golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= +golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sys v0.37.0 h1:fdNQudmxPjkdUTPnLn5mdQv7Zwvbvpaxqs831goi9kQ= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.30.0 h1:yznKA/E9zq54KzlzBEAWn1NXSQ8DIp/NYMy88xJjl4k= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +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.255.0 h1:OaF+IbRwOottVCYV2wZan7KUq7UeNUQn1BcPc4K7lE4= +google.golang.org/api v0.255.0/go.mod h1:d1/EtvCLdtiWEV4rAEHDHGh2bCnqsWhw+M8y2ECN4a8= +google.golang.org/genproto v0.0.0-20251103181224-f26f9409b101 h1:MgBTzgUJFAmp2PlyqKJecSpZpjFxkYL3nDUIeH/6Q30= +google.golang.org/genproto v0.0.0-20251103181224-f26f9409b101/go.mod h1:bbWg36d7wp3knc0hIlmJAnW5R/CQ2rzpEVb72eH4ex4= +google.golang.org/genproto/googleapis/api v0.0.0-20251103181224-f26f9409b101 h1:vk5TfqZHNn0obhPIYeS+cxIFKFQgser/M2jnI+9c6MM= +google.golang.org/genproto/googleapis/api v0.0.0-20251103181224-f26f9409b101/go.mod h1:E17fc4PDhkr22dE3RgnH2hEubUaky6ZwW4VhANxyspg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda h1:i/Q+bfisr7gq6feoJnS/DlpdwEL4ihp41fvRiM3Ork0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20251029180050-ab9386a59fda/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk= +google.golang.org/grpc v1.76.0 h1:UnVkv1+uMLYXoIz6o7chp59WfQUYA2ex/BXQ9rHZu7A= +google.golang.org/grpc v1.76.0/go.mod h1:Ju12QI8M6iQJtbcsV+awF5a4hfJMLi4X0JLo94ULZ6c= +google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE= +google.golang.org/protobuf v1.36.10/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/saasplatform/internal/version.go b/saasplatform/internal/version.go new file mode 100644 index 000000000000..04ec61c29392 --- /dev/null +++ b/saasplatform/internal/version.go @@ -0,0 +1,20 @@ +// Copyright 2025 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" diff --git a/saasplatform/saasservicemgmt/apiv1beta1/auxiliary.go b/saasplatform/saasservicemgmt/apiv1beta1/auxiliary.go new file mode 100644 index 000000000000..f95289af7e3b --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/auxiliary.go @@ -0,0 +1,446 @@ +// Copyright 2025 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 saasservicemgmt + +import ( + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// 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 +} + +// ReleaseIterator manages a stream of *saasservicemgmtpb.Release. +type ReleaseIterator struct { + items []*saasservicemgmtpb.Release + 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 []*saasservicemgmtpb.Release, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *ReleaseIterator) 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 *ReleaseIterator) Next() (*saasservicemgmtpb.Release, error) { + var item *saasservicemgmtpb.Release + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ReleaseIterator) bufLen() int { + return len(it.items) +} + +func (it *ReleaseIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// RolloutIterator manages a stream of *saasservicemgmtpb.Rollout. +type RolloutIterator struct { + items []*saasservicemgmtpb.Rollout + 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 []*saasservicemgmtpb.Rollout, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *RolloutIterator) 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 *RolloutIterator) Next() (*saasservicemgmtpb.Rollout, error) { + var item *saasservicemgmtpb.Rollout + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *RolloutIterator) bufLen() int { + return len(it.items) +} + +func (it *RolloutIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// RolloutKindIterator manages a stream of *saasservicemgmtpb.RolloutKind. +type RolloutKindIterator struct { + items []*saasservicemgmtpb.RolloutKind + 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 []*saasservicemgmtpb.RolloutKind, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *RolloutKindIterator) 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 *RolloutKindIterator) Next() (*saasservicemgmtpb.RolloutKind, error) { + var item *saasservicemgmtpb.RolloutKind + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *RolloutKindIterator) bufLen() int { + return len(it.items) +} + +func (it *RolloutKindIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SaasIterator manages a stream of *saasservicemgmtpb.Saas. +type SaasIterator struct { + items []*saasservicemgmtpb.Saas + 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 []*saasservicemgmtpb.Saas, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *SaasIterator) 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 *SaasIterator) Next() (*saasservicemgmtpb.Saas, error) { + var item *saasservicemgmtpb.Saas + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SaasIterator) bufLen() int { + return len(it.items) +} + +func (it *SaasIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// TenantIterator manages a stream of *saasservicemgmtpb.Tenant. +type TenantIterator struct { + items []*saasservicemgmtpb.Tenant + 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 []*saasservicemgmtpb.Tenant, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *TenantIterator) 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 *TenantIterator) Next() (*saasservicemgmtpb.Tenant, error) { + var item *saasservicemgmtpb.Tenant + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *TenantIterator) bufLen() int { + return len(it.items) +} + +func (it *TenantIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// UnitIterator manages a stream of *saasservicemgmtpb.Unit. +type UnitIterator struct { + items []*saasservicemgmtpb.Unit + 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 []*saasservicemgmtpb.Unit, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *UnitIterator) 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 *UnitIterator) Next() (*saasservicemgmtpb.Unit, error) { + var item *saasservicemgmtpb.Unit + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *UnitIterator) bufLen() int { + return len(it.items) +} + +func (it *UnitIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// UnitKindIterator manages a stream of *saasservicemgmtpb.UnitKind. +type UnitKindIterator struct { + items []*saasservicemgmtpb.UnitKind + 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 []*saasservicemgmtpb.UnitKind, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *UnitKindIterator) 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 *UnitKindIterator) Next() (*saasservicemgmtpb.UnitKind, error) { + var item *saasservicemgmtpb.UnitKind + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *UnitKindIterator) bufLen() int { + return len(it.items) +} + +func (it *UnitKindIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// UnitOperationIterator manages a stream of *saasservicemgmtpb.UnitOperation. +type UnitOperationIterator struct { + items []*saasservicemgmtpb.UnitOperation + 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 []*saasservicemgmtpb.UnitOperation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *UnitOperationIterator) 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 *UnitOperationIterator) Next() (*saasservicemgmtpb.UnitOperation, error) { + var item *saasservicemgmtpb.UnitOperation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *UnitOperationIterator) bufLen() int { + return len(it.items) +} + +func (it *UnitOperationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/auxiliary_go123.go b/saasplatform/saasservicemgmt/apiv1beta1/auxiliary_go123.go new file mode 100644 index 000000000000..e21a1c067421 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/auxiliary_go123.go @@ -0,0 +1,81 @@ +// Copyright 2025 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 saasservicemgmt + +import ( + "iter" + + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "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 *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 *ReleaseIterator) All() iter.Seq2[*saasservicemgmtpb.Release, 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 *RolloutIterator) All() iter.Seq2[*saasservicemgmtpb.Rollout, 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 *RolloutKindIterator) All() iter.Seq2[*saasservicemgmtpb.RolloutKind, 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 *SaasIterator) All() iter.Seq2[*saasservicemgmtpb.Saas, 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 *TenantIterator) All() iter.Seq2[*saasservicemgmtpb.Tenant, 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 *UnitIterator) All() iter.Seq2[*saasservicemgmtpb.Unit, 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 *UnitKindIterator) All() iter.Seq2[*saasservicemgmtpb.UnitKind, 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 *UnitOperationIterator) All() iter.Seq2[*saasservicemgmtpb.UnitOperation, error] { + return iterator.RangeAdapter(it.Next) +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/doc.go b/saasplatform/saasservicemgmt/apiv1beta1/doc.go new file mode 100644 index 000000000000..96697f8bc2af --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/doc.go @@ -0,0 +1,85 @@ +// Copyright 2025 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 saasservicemgmt is an auto-generated package for the +// SaaS Runtime API. +// +// Model, deploy, and operate your SaaS at scale. +// +// 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/saasplatform/saasservicemgmt/apiv1beta1@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 := saasservicemgmt.NewSaasDeploymentsClient(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 := &saasservicemgmtpb.CreateReleaseRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateReleaseRequest. +// } +// resp, err := c.CreateRelease(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Use of Context +// +// The ctx passed to NewSaasDeploymentsClient 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 saasservicemgmt // import "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" diff --git a/saasplatform/saasservicemgmt/apiv1beta1/gapic_metadata.json b/saasplatform/saasservicemgmt/apiv1beta1/gapic_metadata.json new file mode 100644 index 000000000000..be2b37052019 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/gapic_metadata.json @@ -0,0 +1,477 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.saasplatform.saasservicemgmt.v1beta1", + "libraryPackage": "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1", + "services": { + "SaasDeployments": { + "clients": { + "grpc": { + "libraryClient": "SaasDeploymentsClient", + "rpcs": { + "CreateRelease": { + "methods": [ + "CreateRelease" + ] + }, + "CreateSaas": { + "methods": [ + "CreateSaas" + ] + }, + "CreateTenant": { + "methods": [ + "CreateTenant" + ] + }, + "CreateUnit": { + "methods": [ + "CreateUnit" + ] + }, + "CreateUnitKind": { + "methods": [ + "CreateUnitKind" + ] + }, + "CreateUnitOperation": { + "methods": [ + "CreateUnitOperation" + ] + }, + "DeleteRelease": { + "methods": [ + "DeleteRelease" + ] + }, + "DeleteSaas": { + "methods": [ + "DeleteSaas" + ] + }, + "DeleteTenant": { + "methods": [ + "DeleteTenant" + ] + }, + "DeleteUnit": { + "methods": [ + "DeleteUnit" + ] + }, + "DeleteUnitKind": { + "methods": [ + "DeleteUnitKind" + ] + }, + "DeleteUnitOperation": { + "methods": [ + "DeleteUnitOperation" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetRelease": { + "methods": [ + "GetRelease" + ] + }, + "GetSaas": { + "methods": [ + "GetSaas" + ] + }, + "GetTenant": { + "methods": [ + "GetTenant" + ] + }, + "GetUnit": { + "methods": [ + "GetUnit" + ] + }, + "GetUnitKind": { + "methods": [ + "GetUnitKind" + ] + }, + "GetUnitOperation": { + "methods": [ + "GetUnitOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListReleases": { + "methods": [ + "ListReleases" + ] + }, + "ListSaas": { + "methods": [ + "ListSaas" + ] + }, + "ListTenants": { + "methods": [ + "ListTenants" + ] + }, + "ListUnitKinds": { + "methods": [ + "ListUnitKinds" + ] + }, + "ListUnitOperations": { + "methods": [ + "ListUnitOperations" + ] + }, + "ListUnits": { + "methods": [ + "ListUnits" + ] + }, + "UpdateRelease": { + "methods": [ + "UpdateRelease" + ] + }, + "UpdateSaas": { + "methods": [ + "UpdateSaas" + ] + }, + "UpdateTenant": { + "methods": [ + "UpdateTenant" + ] + }, + "UpdateUnit": { + "methods": [ + "UpdateUnit" + ] + }, + "UpdateUnitKind": { + "methods": [ + "UpdateUnitKind" + ] + }, + "UpdateUnitOperation": { + "methods": [ + "UpdateUnitOperation" + ] + } + } + }, + "rest": { + "libraryClient": "SaasDeploymentsClient", + "rpcs": { + "CreateRelease": { + "methods": [ + "CreateRelease" + ] + }, + "CreateSaas": { + "methods": [ + "CreateSaas" + ] + }, + "CreateTenant": { + "methods": [ + "CreateTenant" + ] + }, + "CreateUnit": { + "methods": [ + "CreateUnit" + ] + }, + "CreateUnitKind": { + "methods": [ + "CreateUnitKind" + ] + }, + "CreateUnitOperation": { + "methods": [ + "CreateUnitOperation" + ] + }, + "DeleteRelease": { + "methods": [ + "DeleteRelease" + ] + }, + "DeleteSaas": { + "methods": [ + "DeleteSaas" + ] + }, + "DeleteTenant": { + "methods": [ + "DeleteTenant" + ] + }, + "DeleteUnit": { + "methods": [ + "DeleteUnit" + ] + }, + "DeleteUnitKind": { + "methods": [ + "DeleteUnitKind" + ] + }, + "DeleteUnitOperation": { + "methods": [ + "DeleteUnitOperation" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetRelease": { + "methods": [ + "GetRelease" + ] + }, + "GetSaas": { + "methods": [ + "GetSaas" + ] + }, + "GetTenant": { + "methods": [ + "GetTenant" + ] + }, + "GetUnit": { + "methods": [ + "GetUnit" + ] + }, + "GetUnitKind": { + "methods": [ + "GetUnitKind" + ] + }, + "GetUnitOperation": { + "methods": [ + "GetUnitOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListReleases": { + "methods": [ + "ListReleases" + ] + }, + "ListSaas": { + "methods": [ + "ListSaas" + ] + }, + "ListTenants": { + "methods": [ + "ListTenants" + ] + }, + "ListUnitKinds": { + "methods": [ + "ListUnitKinds" + ] + }, + "ListUnitOperations": { + "methods": [ + "ListUnitOperations" + ] + }, + "ListUnits": { + "methods": [ + "ListUnits" + ] + }, + "UpdateRelease": { + "methods": [ + "UpdateRelease" + ] + }, + "UpdateSaas": { + "methods": [ + "UpdateSaas" + ] + }, + "UpdateTenant": { + "methods": [ + "UpdateTenant" + ] + }, + "UpdateUnit": { + "methods": [ + "UpdateUnit" + ] + }, + "UpdateUnitKind": { + "methods": [ + "UpdateUnitKind" + ] + }, + "UpdateUnitOperation": { + "methods": [ + "UpdateUnitOperation" + ] + } + } + } + } + }, + "SaasRollouts": { + "clients": { + "grpc": { + "libraryClient": "SaasRolloutsClient", + "rpcs": { + "CreateRollout": { + "methods": [ + "CreateRollout" + ] + }, + "CreateRolloutKind": { + "methods": [ + "CreateRolloutKind" + ] + }, + "DeleteRollout": { + "methods": [ + "DeleteRollout" + ] + }, + "DeleteRolloutKind": { + "methods": [ + "DeleteRolloutKind" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetRollout": { + "methods": [ + "GetRollout" + ] + }, + "GetRolloutKind": { + "methods": [ + "GetRolloutKind" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListRolloutKinds": { + "methods": [ + "ListRolloutKinds" + ] + }, + "ListRollouts": { + "methods": [ + "ListRollouts" + ] + }, + "UpdateRollout": { + "methods": [ + "UpdateRollout" + ] + }, + "UpdateRolloutKind": { + "methods": [ + "UpdateRolloutKind" + ] + } + } + }, + "rest": { + "libraryClient": "SaasRolloutsClient", + "rpcs": { + "CreateRollout": { + "methods": [ + "CreateRollout" + ] + }, + "CreateRolloutKind": { + "methods": [ + "CreateRolloutKind" + ] + }, + "DeleteRollout": { + "methods": [ + "DeleteRollout" + ] + }, + "DeleteRolloutKind": { + "methods": [ + "DeleteRolloutKind" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetRollout": { + "methods": [ + "GetRollout" + ] + }, + "GetRolloutKind": { + "methods": [ + "GetRolloutKind" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListRolloutKinds": { + "methods": [ + "ListRolloutKinds" + ] + }, + "ListRollouts": { + "methods": [ + "ListRollouts" + ] + }, + "UpdateRollout": { + "methods": [ + "UpdateRollout" + ] + }, + "UpdateRolloutKind": { + "methods": [ + "UpdateRolloutKind" + ] + } + } + } + } + } + } +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/helpers.go b/saasplatform/saasservicemgmt/apiv1beta1/helpers.go new file mode 100644 index 000000000000..021c99539ae6 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/helpers.go @@ -0,0 +1,105 @@ +// Copyright 2025 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 saasservicemgmt + +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 = "saasservicemgmt.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/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client.go new file mode 100644 index 000000000000..3aa85b954861 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client.go @@ -0,0 +1,3735 @@ +// Copyright 2025 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 saasservicemgmt + +import ( + "bytes" + "context" + "fmt" + "log/slog" + "math" + "net/http" + "net/url" + "time" + + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + 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 newSaasDeploymentsClientHook clientHook + +// SaasDeploymentsCallOptions contains the retry settings for each method of SaasDeploymentsClient. +type SaasDeploymentsCallOptions struct { + ListSaas []gax.CallOption + GetSaas []gax.CallOption + CreateSaas []gax.CallOption + UpdateSaas []gax.CallOption + DeleteSaas []gax.CallOption + ListTenants []gax.CallOption + GetTenant []gax.CallOption + CreateTenant []gax.CallOption + UpdateTenant []gax.CallOption + DeleteTenant []gax.CallOption + ListUnitKinds []gax.CallOption + GetUnitKind []gax.CallOption + CreateUnitKind []gax.CallOption + UpdateUnitKind []gax.CallOption + DeleteUnitKind []gax.CallOption + ListUnits []gax.CallOption + GetUnit []gax.CallOption + CreateUnit []gax.CallOption + UpdateUnit []gax.CallOption + DeleteUnit []gax.CallOption + ListUnitOperations []gax.CallOption + GetUnitOperation []gax.CallOption + CreateUnitOperation []gax.CallOption + UpdateUnitOperation []gax.CallOption + DeleteUnitOperation []gax.CallOption + ListReleases []gax.CallOption + GetRelease []gax.CallOption + CreateRelease []gax.CallOption + UpdateRelease []gax.CallOption + DeleteRelease []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption +} + +func defaultSaasDeploymentsGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("saasservicemgmt.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("saasservicemgmt.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("saasservicemgmt.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://saasservicemgmt.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultSaasDeploymentsCallOptions() *SaasDeploymentsCallOptions { + return &SaasDeploymentsCallOptions{ + ListSaas: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetSaas: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateSaas: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateSaas: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteSaas: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + ListTenants: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetTenant: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateTenant: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateTenant: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteTenant: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + ListUnitKinds: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetUnitKind: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateUnitKind: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnitKind: []gax.CallOption{ + gax.WithTimeout(80000 * time.Millisecond), + }, + DeleteUnitKind: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + ListUnits: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetUnit: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateUnit: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnit: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteUnit: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + ListUnitOperations: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + ListReleases: []gax.CallOption{ + gax.WithTimeout(80000 * 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, + }) + }), + }, + GetRelease: []gax.CallOption{ + gax.WithTimeout(30000 * 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, + }) + }), + }, + CreateRelease: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateRelease: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteRelease: []gax.CallOption{ + gax.WithTimeout(30000 * 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{}, + } +} + +func defaultSaasDeploymentsRESTCallOptions() *SaasDeploymentsCallOptions { + return &SaasDeploymentsCallOptions{ + ListSaas: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetSaas: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateSaas: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateSaas: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteSaas: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + ListTenants: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetTenant: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateTenant: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateTenant: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteTenant: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + ListUnitKinds: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetUnitKind: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateUnitKind: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnitKind: []gax.CallOption{ + gax.WithTimeout(80000 * time.Millisecond), + }, + DeleteUnitKind: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + ListUnits: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetUnit: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateUnit: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnit: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteUnit: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + ListUnitOperations: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteUnitOperation: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + ListReleases: []gax.CallOption{ + gax.WithTimeout(80000 * 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) + }), + }, + GetRelease: []gax.CallOption{ + gax.WithTimeout(30000 * 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) + }), + }, + CreateRelease: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + UpdateRelease: []gax.CallOption{ + gax.WithTimeout(30000 * time.Millisecond), + }, + DeleteRelease: []gax.CallOption{ + gax.WithTimeout(30000 * 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{}, + } +} + +// internalSaasDeploymentsClient is an interface that defines the methods available from SaaS Runtime API. +type internalSaasDeploymentsClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListSaas(context.Context, *saasservicemgmtpb.ListSaasRequest, ...gax.CallOption) *SaasIterator + GetSaas(context.Context, *saasservicemgmtpb.GetSaasRequest, ...gax.CallOption) (*saasservicemgmtpb.Saas, error) + CreateSaas(context.Context, *saasservicemgmtpb.CreateSaasRequest, ...gax.CallOption) (*saasservicemgmtpb.Saas, error) + UpdateSaas(context.Context, *saasservicemgmtpb.UpdateSaasRequest, ...gax.CallOption) (*saasservicemgmtpb.Saas, error) + DeleteSaas(context.Context, *saasservicemgmtpb.DeleteSaasRequest, ...gax.CallOption) error + ListTenants(context.Context, *saasservicemgmtpb.ListTenantsRequest, ...gax.CallOption) *TenantIterator + GetTenant(context.Context, *saasservicemgmtpb.GetTenantRequest, ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) + CreateTenant(context.Context, *saasservicemgmtpb.CreateTenantRequest, ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) + UpdateTenant(context.Context, *saasservicemgmtpb.UpdateTenantRequest, ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) + DeleteTenant(context.Context, *saasservicemgmtpb.DeleteTenantRequest, ...gax.CallOption) error + ListUnitKinds(context.Context, *saasservicemgmtpb.ListUnitKindsRequest, ...gax.CallOption) *UnitKindIterator + GetUnitKind(context.Context, *saasservicemgmtpb.GetUnitKindRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) + CreateUnitKind(context.Context, *saasservicemgmtpb.CreateUnitKindRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) + UpdateUnitKind(context.Context, *saasservicemgmtpb.UpdateUnitKindRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) + DeleteUnitKind(context.Context, *saasservicemgmtpb.DeleteUnitKindRequest, ...gax.CallOption) error + ListUnits(context.Context, *saasservicemgmtpb.ListUnitsRequest, ...gax.CallOption) *UnitIterator + GetUnit(context.Context, *saasservicemgmtpb.GetUnitRequest, ...gax.CallOption) (*saasservicemgmtpb.Unit, error) + CreateUnit(context.Context, *saasservicemgmtpb.CreateUnitRequest, ...gax.CallOption) (*saasservicemgmtpb.Unit, error) + UpdateUnit(context.Context, *saasservicemgmtpb.UpdateUnitRequest, ...gax.CallOption) (*saasservicemgmtpb.Unit, error) + DeleteUnit(context.Context, *saasservicemgmtpb.DeleteUnitRequest, ...gax.CallOption) error + ListUnitOperations(context.Context, *saasservicemgmtpb.ListUnitOperationsRequest, ...gax.CallOption) *UnitOperationIterator + GetUnitOperation(context.Context, *saasservicemgmtpb.GetUnitOperationRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) + CreateUnitOperation(context.Context, *saasservicemgmtpb.CreateUnitOperationRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) + UpdateUnitOperation(context.Context, *saasservicemgmtpb.UpdateUnitOperationRequest, ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) + DeleteUnitOperation(context.Context, *saasservicemgmtpb.DeleteUnitOperationRequest, ...gax.CallOption) error + ListReleases(context.Context, *saasservicemgmtpb.ListReleasesRequest, ...gax.CallOption) *ReleaseIterator + GetRelease(context.Context, *saasservicemgmtpb.GetReleaseRequest, ...gax.CallOption) (*saasservicemgmtpb.Release, error) + CreateRelease(context.Context, *saasservicemgmtpb.CreateReleaseRequest, ...gax.CallOption) (*saasservicemgmtpb.Release, error) + UpdateRelease(context.Context, *saasservicemgmtpb.UpdateReleaseRequest, ...gax.CallOption) (*saasservicemgmtpb.Release, error) + DeleteRelease(context.Context, *saasservicemgmtpb.DeleteReleaseRequest, ...gax.CallOption) error + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator +} + +// SaasDeploymentsClient is a client for interacting with SaaS Runtime API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Manages the deployment of SaaS services. +type SaasDeploymentsClient struct { + // The internal transport-dependent client. + internalClient internalSaasDeploymentsClient + + // The call options for this service. + CallOptions *SaasDeploymentsCallOptions +} + +// 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 *SaasDeploymentsClient) 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 *SaasDeploymentsClient) 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 *SaasDeploymentsClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListSaas retrieve a collection of saas. +func (c *SaasDeploymentsClient) ListSaas(ctx context.Context, req *saasservicemgmtpb.ListSaasRequest, opts ...gax.CallOption) *SaasIterator { + return c.internalClient.ListSaas(ctx, req, opts...) +} + +// GetSaas retrieve a single saas. +func (c *SaasDeploymentsClient) GetSaas(ctx context.Context, req *saasservicemgmtpb.GetSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + return c.internalClient.GetSaas(ctx, req, opts...) +} + +// CreateSaas create a new saas. +func (c *SaasDeploymentsClient) CreateSaas(ctx context.Context, req *saasservicemgmtpb.CreateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + return c.internalClient.CreateSaas(ctx, req, opts...) +} + +// UpdateSaas update a single saas. +func (c *SaasDeploymentsClient) UpdateSaas(ctx context.Context, req *saasservicemgmtpb.UpdateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + return c.internalClient.UpdateSaas(ctx, req, opts...) +} + +// DeleteSaas delete a single saas. +func (c *SaasDeploymentsClient) DeleteSaas(ctx context.Context, req *saasservicemgmtpb.DeleteSaasRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteSaas(ctx, req, opts...) +} + +// ListTenants retrieve a collection of tenants. +func (c *SaasDeploymentsClient) ListTenants(ctx context.Context, req *saasservicemgmtpb.ListTenantsRequest, opts ...gax.CallOption) *TenantIterator { + return c.internalClient.ListTenants(ctx, req, opts...) +} + +// GetTenant retrieve a single tenant. +func (c *SaasDeploymentsClient) GetTenant(ctx context.Context, req *saasservicemgmtpb.GetTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + return c.internalClient.GetTenant(ctx, req, opts...) +} + +// CreateTenant create a new tenant. +func (c *SaasDeploymentsClient) CreateTenant(ctx context.Context, req *saasservicemgmtpb.CreateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + return c.internalClient.CreateTenant(ctx, req, opts...) +} + +// UpdateTenant update a single tenant. +func (c *SaasDeploymentsClient) UpdateTenant(ctx context.Context, req *saasservicemgmtpb.UpdateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + return c.internalClient.UpdateTenant(ctx, req, opts...) +} + +// DeleteTenant delete a single tenant. +func (c *SaasDeploymentsClient) DeleteTenant(ctx context.Context, req *saasservicemgmtpb.DeleteTenantRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteTenant(ctx, req, opts...) +} + +// ListUnitKinds retrieve a collection of unit kinds. +func (c *SaasDeploymentsClient) ListUnitKinds(ctx context.Context, req *saasservicemgmtpb.ListUnitKindsRequest, opts ...gax.CallOption) *UnitKindIterator { + return c.internalClient.ListUnitKinds(ctx, req, opts...) +} + +// GetUnitKind retrieve a single unit kind. +func (c *SaasDeploymentsClient) GetUnitKind(ctx context.Context, req *saasservicemgmtpb.GetUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + return c.internalClient.GetUnitKind(ctx, req, opts...) +} + +// CreateUnitKind create a new unit kind. +func (c *SaasDeploymentsClient) CreateUnitKind(ctx context.Context, req *saasservicemgmtpb.CreateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + return c.internalClient.CreateUnitKind(ctx, req, opts...) +} + +// UpdateUnitKind update a single unit kind. +func (c *SaasDeploymentsClient) UpdateUnitKind(ctx context.Context, req *saasservicemgmtpb.UpdateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + return c.internalClient.UpdateUnitKind(ctx, req, opts...) +} + +// DeleteUnitKind delete a single unit kind. +func (c *SaasDeploymentsClient) DeleteUnitKind(ctx context.Context, req *saasservicemgmtpb.DeleteUnitKindRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteUnitKind(ctx, req, opts...) +} + +// ListUnits retrieve a collection of units. +func (c *SaasDeploymentsClient) ListUnits(ctx context.Context, req *saasservicemgmtpb.ListUnitsRequest, opts ...gax.CallOption) *UnitIterator { + return c.internalClient.ListUnits(ctx, req, opts...) +} + +// GetUnit retrieve a single unit. +func (c *SaasDeploymentsClient) GetUnit(ctx context.Context, req *saasservicemgmtpb.GetUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + return c.internalClient.GetUnit(ctx, req, opts...) +} + +// CreateUnit create a new unit. +func (c *SaasDeploymentsClient) CreateUnit(ctx context.Context, req *saasservicemgmtpb.CreateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + return c.internalClient.CreateUnit(ctx, req, opts...) +} + +// UpdateUnit update a single unit. +func (c *SaasDeploymentsClient) UpdateUnit(ctx context.Context, req *saasservicemgmtpb.UpdateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + return c.internalClient.UpdateUnit(ctx, req, opts...) +} + +// DeleteUnit delete a single unit. +func (c *SaasDeploymentsClient) DeleteUnit(ctx context.Context, req *saasservicemgmtpb.DeleteUnitRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteUnit(ctx, req, opts...) +} + +// ListUnitOperations retrieve a collection of unit operations. +func (c *SaasDeploymentsClient) ListUnitOperations(ctx context.Context, req *saasservicemgmtpb.ListUnitOperationsRequest, opts ...gax.CallOption) *UnitOperationIterator { + return c.internalClient.ListUnitOperations(ctx, req, opts...) +} + +// GetUnitOperation retrieve a single unit operation. +func (c *SaasDeploymentsClient) GetUnitOperation(ctx context.Context, req *saasservicemgmtpb.GetUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + return c.internalClient.GetUnitOperation(ctx, req, opts...) +} + +// CreateUnitOperation create a new unit operation. +func (c *SaasDeploymentsClient) CreateUnitOperation(ctx context.Context, req *saasservicemgmtpb.CreateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + return c.internalClient.CreateUnitOperation(ctx, req, opts...) +} + +// UpdateUnitOperation update a single unit operation. +func (c *SaasDeploymentsClient) UpdateUnitOperation(ctx context.Context, req *saasservicemgmtpb.UpdateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + return c.internalClient.UpdateUnitOperation(ctx, req, opts...) +} + +// DeleteUnitOperation delete a single unit operation. +func (c *SaasDeploymentsClient) DeleteUnitOperation(ctx context.Context, req *saasservicemgmtpb.DeleteUnitOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteUnitOperation(ctx, req, opts...) +} + +// ListReleases retrieve a collection of releases. +func (c *SaasDeploymentsClient) ListReleases(ctx context.Context, req *saasservicemgmtpb.ListReleasesRequest, opts ...gax.CallOption) *ReleaseIterator { + return c.internalClient.ListReleases(ctx, req, opts...) +} + +// GetRelease retrieve a single release. +func (c *SaasDeploymentsClient) GetRelease(ctx context.Context, req *saasservicemgmtpb.GetReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + return c.internalClient.GetRelease(ctx, req, opts...) +} + +// CreateRelease create a new release. +func (c *SaasDeploymentsClient) CreateRelease(ctx context.Context, req *saasservicemgmtpb.CreateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + return c.internalClient.CreateRelease(ctx, req, opts...) +} + +// UpdateRelease update a single release. +func (c *SaasDeploymentsClient) UpdateRelease(ctx context.Context, req *saasservicemgmtpb.UpdateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + return c.internalClient.UpdateRelease(ctx, req, opts...) +} + +// DeleteRelease delete a single release. +func (c *SaasDeploymentsClient) DeleteRelease(ctx context.Context, req *saasservicemgmtpb.DeleteReleaseRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteRelease(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *SaasDeploymentsClient) 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. +func (c *SaasDeploymentsClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// saasDeploymentsGRPCClient is a client for interacting with SaaS Runtime API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type saasDeploymentsGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing SaasDeploymentsClient + CallOptions **SaasDeploymentsCallOptions + + // The gRPC API client. + saasDeploymentsClient saasservicemgmtpb.SaasDeploymentsClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewSaasDeploymentsClient creates a new saas deployments client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Manages the deployment of SaaS services. +func NewSaasDeploymentsClient(ctx context.Context, opts ...option.ClientOption) (*SaasDeploymentsClient, error) { + clientOpts := defaultSaasDeploymentsGRPCClientOptions() + if newSaasDeploymentsClientHook != nil { + hookOpts, err := newSaasDeploymentsClientHook(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 := SaasDeploymentsClient{CallOptions: defaultSaasDeploymentsCallOptions()} + + c := &saasDeploymentsGRPCClient{ + connPool: connPool, + saasDeploymentsClient: saasservicemgmtpb.NewSaasDeploymentsClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + 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 *saasDeploymentsGRPCClient) 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 *saasDeploymentsGRPCClient) 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 *saasDeploymentsGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type saasDeploymentsRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing SaasDeploymentsClient + CallOptions **SaasDeploymentsCallOptions + + logger *slog.Logger +} + +// NewSaasDeploymentsRESTClient creates a new saas deployments rest client. +// +// Manages the deployment of SaaS services. +func NewSaasDeploymentsRESTClient(ctx context.Context, opts ...option.ClientOption) (*SaasDeploymentsClient, error) { + clientOpts := append(defaultSaasDeploymentsRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultSaasDeploymentsRESTCallOptions() + c := &saasDeploymentsRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + logger: internaloption.GetLogger(opts), + } + c.setGoogleClientInfo() + + return &SaasDeploymentsClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultSaasDeploymentsRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://saasservicemgmt.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://saasservicemgmt.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://saasservicemgmt.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://saasservicemgmt.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 *saasDeploymentsRESTClient) 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 *saasDeploymentsRESTClient) 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 *saasDeploymentsRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *saasDeploymentsGRPCClient) ListSaas(ctx context.Context, req *saasservicemgmtpb.ListSaasRequest, opts ...gax.CallOption) *SaasIterator { + 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).ListSaas[0:len((*c.CallOptions).ListSaas):len((*c.CallOptions).ListSaas)], opts...) + it := &SaasIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListSaasRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Saas, string, error) { + resp := &saasservicemgmtpb.ListSaasResponse{} + 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.saasDeploymentsClient.ListSaas, req, settings.GRPC, c.logger, "ListSaas") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSaas(), 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 *saasDeploymentsGRPCClient) GetSaas(ctx context.Context, req *saasservicemgmtpb.GetSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, 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).GetSaas[0:len((*c.CallOptions).GetSaas):len((*c.CallOptions).GetSaas)], opts...) + var resp *saasservicemgmtpb.Saas + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetSaas, req, settings.GRPC, c.logger, "GetSaas") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateSaas(ctx context.Context, req *saasservicemgmtpb.CreateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, 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).CreateSaas[0:len((*c.CallOptions).CreateSaas):len((*c.CallOptions).CreateSaas)], opts...) + var resp *saasservicemgmtpb.Saas + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateSaas, req, settings.GRPC, c.logger, "CreateSaas") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateSaas(ctx context.Context, req *saasservicemgmtpb.UpdateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "saas.name", url.QueryEscape(req.GetSaas().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSaas[0:len((*c.CallOptions).UpdateSaas):len((*c.CallOptions).UpdateSaas)], opts...) + var resp *saasservicemgmtpb.Saas + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateSaas, req, settings.GRPC, c.logger, "UpdateSaas") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteSaas(ctx context.Context, req *saasservicemgmtpb.DeleteSaasRequest, 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).DeleteSaas[0:len((*c.CallOptions).DeleteSaas):len((*c.CallOptions).DeleteSaas)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteSaas, req, settings.GRPC, c.logger, "DeleteSaas") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) ListTenants(ctx context.Context, req *saasservicemgmtpb.ListTenantsRequest, opts ...gax.CallOption) *TenantIterator { + 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).ListTenants[0:len((*c.CallOptions).ListTenants):len((*c.CallOptions).ListTenants)], opts...) + it := &TenantIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListTenantsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Tenant, string, error) { + resp := &saasservicemgmtpb.ListTenantsResponse{} + 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.saasDeploymentsClient.ListTenants, req, settings.GRPC, c.logger, "ListTenants") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetTenants(), 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 *saasDeploymentsGRPCClient) GetTenant(ctx context.Context, req *saasservicemgmtpb.GetTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, 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).GetTenant[0:len((*c.CallOptions).GetTenant):len((*c.CallOptions).GetTenant)], opts...) + var resp *saasservicemgmtpb.Tenant + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetTenant, req, settings.GRPC, c.logger, "GetTenant") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateTenant(ctx context.Context, req *saasservicemgmtpb.CreateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, 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).CreateTenant[0:len((*c.CallOptions).CreateTenant):len((*c.CallOptions).CreateTenant)], opts...) + var resp *saasservicemgmtpb.Tenant + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateTenant, req, settings.GRPC, c.logger, "CreateTenant") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateTenant(ctx context.Context, req *saasservicemgmtpb.UpdateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "tenant.name", url.QueryEscape(req.GetTenant().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateTenant[0:len((*c.CallOptions).UpdateTenant):len((*c.CallOptions).UpdateTenant)], opts...) + var resp *saasservicemgmtpb.Tenant + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateTenant, req, settings.GRPC, c.logger, "UpdateTenant") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteTenant(ctx context.Context, req *saasservicemgmtpb.DeleteTenantRequest, 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).DeleteTenant[0:len((*c.CallOptions).DeleteTenant):len((*c.CallOptions).DeleteTenant)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteTenant, req, settings.GRPC, c.logger, "DeleteTenant") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) ListUnitKinds(ctx context.Context, req *saasservicemgmtpb.ListUnitKindsRequest, opts ...gax.CallOption) *UnitKindIterator { + 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).ListUnitKinds[0:len((*c.CallOptions).ListUnitKinds):len((*c.CallOptions).ListUnitKinds)], opts...) + it := &UnitKindIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitKindsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.UnitKind, string, error) { + resp := &saasservicemgmtpb.ListUnitKindsResponse{} + 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.saasDeploymentsClient.ListUnitKinds, req, settings.GRPC, c.logger, "ListUnitKinds") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetUnitKinds(), 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 *saasDeploymentsGRPCClient) GetUnitKind(ctx context.Context, req *saasservicemgmtpb.GetUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, 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).GetUnitKind[0:len((*c.CallOptions).GetUnitKind):len((*c.CallOptions).GetUnitKind)], opts...) + var resp *saasservicemgmtpb.UnitKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetUnitKind, req, settings.GRPC, c.logger, "GetUnitKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateUnitKind(ctx context.Context, req *saasservicemgmtpb.CreateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, 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).CreateUnitKind[0:len((*c.CallOptions).CreateUnitKind):len((*c.CallOptions).CreateUnitKind)], opts...) + var resp *saasservicemgmtpb.UnitKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateUnitKind, req, settings.GRPC, c.logger, "CreateUnitKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateUnitKind(ctx context.Context, req *saasservicemgmtpb.UpdateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit_kind.name", url.QueryEscape(req.GetUnitKind().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnitKind[0:len((*c.CallOptions).UpdateUnitKind):len((*c.CallOptions).UpdateUnitKind)], opts...) + var resp *saasservicemgmtpb.UnitKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateUnitKind, req, settings.GRPC, c.logger, "UpdateUnitKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteUnitKind(ctx context.Context, req *saasservicemgmtpb.DeleteUnitKindRequest, 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).DeleteUnitKind[0:len((*c.CallOptions).DeleteUnitKind):len((*c.CallOptions).DeleteUnitKind)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteUnitKind, req, settings.GRPC, c.logger, "DeleteUnitKind") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) ListUnits(ctx context.Context, req *saasservicemgmtpb.ListUnitsRequest, opts ...gax.CallOption) *UnitIterator { + 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).ListUnits[0:len((*c.CallOptions).ListUnits):len((*c.CallOptions).ListUnits)], opts...) + it := &UnitIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Unit, string, error) { + resp := &saasservicemgmtpb.ListUnitsResponse{} + 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.saasDeploymentsClient.ListUnits, req, settings.GRPC, c.logger, "ListUnits") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetUnits(), 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 *saasDeploymentsGRPCClient) GetUnit(ctx context.Context, req *saasservicemgmtpb.GetUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, 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).GetUnit[0:len((*c.CallOptions).GetUnit):len((*c.CallOptions).GetUnit)], opts...) + var resp *saasservicemgmtpb.Unit + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetUnit, req, settings.GRPC, c.logger, "GetUnit") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateUnit(ctx context.Context, req *saasservicemgmtpb.CreateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, 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).CreateUnit[0:len((*c.CallOptions).CreateUnit):len((*c.CallOptions).CreateUnit)], opts...) + var resp *saasservicemgmtpb.Unit + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateUnit, req, settings.GRPC, c.logger, "CreateUnit") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateUnit(ctx context.Context, req *saasservicemgmtpb.UpdateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit.name", url.QueryEscape(req.GetUnit().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnit[0:len((*c.CallOptions).UpdateUnit):len((*c.CallOptions).UpdateUnit)], opts...) + var resp *saasservicemgmtpb.Unit + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateUnit, req, settings.GRPC, c.logger, "UpdateUnit") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteUnit(ctx context.Context, req *saasservicemgmtpb.DeleteUnitRequest, 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).DeleteUnit[0:len((*c.CallOptions).DeleteUnit):len((*c.CallOptions).DeleteUnit)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteUnit, req, settings.GRPC, c.logger, "DeleteUnit") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) ListUnitOperations(ctx context.Context, req *saasservicemgmtpb.ListUnitOperationsRequest, opts ...gax.CallOption) *UnitOperationIterator { + 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).ListUnitOperations[0:len((*c.CallOptions).ListUnitOperations):len((*c.CallOptions).ListUnitOperations)], opts...) + it := &UnitOperationIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.UnitOperation, string, error) { + resp := &saasservicemgmtpb.ListUnitOperationsResponse{} + 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.saasDeploymentsClient.ListUnitOperations, req, settings.GRPC, c.logger, "ListUnitOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetUnitOperations(), 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 *saasDeploymentsGRPCClient) GetUnitOperation(ctx context.Context, req *saasservicemgmtpb.GetUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, 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).GetUnitOperation[0:len((*c.CallOptions).GetUnitOperation):len((*c.CallOptions).GetUnitOperation)], opts...) + var resp *saasservicemgmtpb.UnitOperation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetUnitOperation, req, settings.GRPC, c.logger, "GetUnitOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateUnitOperation(ctx context.Context, req *saasservicemgmtpb.CreateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, 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).CreateUnitOperation[0:len((*c.CallOptions).CreateUnitOperation):len((*c.CallOptions).CreateUnitOperation)], opts...) + var resp *saasservicemgmtpb.UnitOperation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateUnitOperation, req, settings.GRPC, c.logger, "CreateUnitOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateUnitOperation(ctx context.Context, req *saasservicemgmtpb.UpdateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit_operation.name", url.QueryEscape(req.GetUnitOperation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnitOperation[0:len((*c.CallOptions).UpdateUnitOperation):len((*c.CallOptions).UpdateUnitOperation)], opts...) + var resp *saasservicemgmtpb.UnitOperation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateUnitOperation, req, settings.GRPC, c.logger, "UpdateUnitOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteUnitOperation(ctx context.Context, req *saasservicemgmtpb.DeleteUnitOperationRequest, 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).DeleteUnitOperation[0:len((*c.CallOptions).DeleteUnitOperation):len((*c.CallOptions).DeleteUnitOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteUnitOperation, req, settings.GRPC, c.logger, "DeleteUnitOperation") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) ListReleases(ctx context.Context, req *saasservicemgmtpb.ListReleasesRequest, opts ...gax.CallOption) *ReleaseIterator { + 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).ListReleases[0:len((*c.CallOptions).ListReleases):len((*c.CallOptions).ListReleases)], opts...) + it := &ReleaseIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListReleasesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Release, string, error) { + resp := &saasservicemgmtpb.ListReleasesResponse{} + 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.saasDeploymentsClient.ListReleases, req, settings.GRPC, c.logger, "ListReleases") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetReleases(), 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 *saasDeploymentsGRPCClient) GetRelease(ctx context.Context, req *saasservicemgmtpb.GetReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, 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).GetRelease[0:len((*c.CallOptions).GetRelease):len((*c.CallOptions).GetRelease)], opts...) + var resp *saasservicemgmtpb.Release + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.GetRelease, req, settings.GRPC, c.logger, "GetRelease") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) CreateRelease(ctx context.Context, req *saasservicemgmtpb.CreateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, 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).CreateRelease[0:len((*c.CallOptions).CreateRelease):len((*c.CallOptions).CreateRelease)], opts...) + var resp *saasservicemgmtpb.Release + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.CreateRelease, req, settings.GRPC, c.logger, "CreateRelease") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) UpdateRelease(ctx context.Context, req *saasservicemgmtpb.UpdateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "release.name", url.QueryEscape(req.GetRelease().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateRelease[0:len((*c.CallOptions).UpdateRelease):len((*c.CallOptions).UpdateRelease)], opts...) + var resp *saasservicemgmtpb.Release + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasDeploymentsClient.UpdateRelease, req, settings.GRPC, c.logger, "UpdateRelease") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasDeploymentsGRPCClient) DeleteRelease(ctx context.Context, req *saasservicemgmtpb.DeleteReleaseRequest, 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).DeleteRelease[0:len((*c.CallOptions).DeleteRelease):len((*c.CallOptions).DeleteRelease)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasDeploymentsClient.DeleteRelease, req, settings.GRPC, c.logger, "DeleteRelease") + return err + }, opts...) + return err +} + +func (c *saasDeploymentsGRPCClient) 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 *saasDeploymentsGRPCClient) 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 +} + +// ListSaas retrieve a collection of saas. +func (c *saasDeploymentsRESTClient) ListSaas(ctx context.Context, req *saasservicemgmtpb.ListSaasRequest, opts ...gax.CallOption) *SaasIterator { + it := &SaasIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListSaasRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Saas, string, error) { + resp := &saasservicemgmtpb.ListSaasResponse{} + 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("/v1beta1/%v/saas", 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, "ListSaas") + 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.GetSaas(), 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 +} + +// GetSaas retrieve a single saas. +func (c *saasDeploymentsRESTClient) GetSaas(ctx context.Context, req *saasservicemgmtpb.GetSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetSaas[0:len((*c.CallOptions).GetSaas):len((*c.CallOptions).GetSaas)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Saas{} + 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, "GetSaas") + 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 +} + +// CreateSaas create a new saas. +func (c *saasDeploymentsRESTClient) CreateSaas(ctx context.Context, req *saasservicemgmtpb.CreateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSaas() + 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("/v1beta1/%v/saas", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("saasId", fmt.Sprintf("%v", req.GetSaasId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateSaas[0:len((*c.CallOptions).CreateSaas):len((*c.CallOptions).CreateSaas)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Saas{} + 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, "CreateSaas") + 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 +} + +// UpdateSaas update a single saas. +func (c *saasDeploymentsRESTClient) UpdateSaas(ctx context.Context, req *saasservicemgmtpb.UpdateSaasRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Saas, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSaas() + 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("/v1beta1/%v", req.GetSaas().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "saas.name", url.QueryEscape(req.GetSaas().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateSaas[0:len((*c.CallOptions).UpdateSaas):len((*c.CallOptions).UpdateSaas)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Saas{} + 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, "UpdateSaas") + 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 +} + +// DeleteSaas delete a single saas. +func (c *saasDeploymentsRESTClient) DeleteSaas(ctx context.Context, req *saasservicemgmtpb.DeleteSaasRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteSaas") + return err + }, opts...) +} + +// ListTenants retrieve a collection of tenants. +func (c *saasDeploymentsRESTClient) ListTenants(ctx context.Context, req *saasservicemgmtpb.ListTenantsRequest, opts ...gax.CallOption) *TenantIterator { + it := &TenantIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListTenantsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Tenant, string, error) { + resp := &saasservicemgmtpb.ListTenantsResponse{} + 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("/v1beta1/%v/tenants", 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, "ListTenants") + 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.GetTenants(), 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 +} + +// GetTenant retrieve a single tenant. +func (c *saasDeploymentsRESTClient) GetTenant(ctx context.Context, req *saasservicemgmtpb.GetTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetTenant[0:len((*c.CallOptions).GetTenant):len((*c.CallOptions).GetTenant)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Tenant{} + 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, "GetTenant") + 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 +} + +// CreateTenant create a new tenant. +func (c *saasDeploymentsRESTClient) CreateTenant(ctx context.Context, req *saasservicemgmtpb.CreateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetTenant() + 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("/v1beta1/%v/tenants", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("tenantId", fmt.Sprintf("%v", req.GetTenantId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateTenant[0:len((*c.CallOptions).CreateTenant):len((*c.CallOptions).CreateTenant)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Tenant{} + 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, "CreateTenant") + 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 +} + +// UpdateTenant update a single tenant. +func (c *saasDeploymentsRESTClient) UpdateTenant(ctx context.Context, req *saasservicemgmtpb.UpdateTenantRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Tenant, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetTenant() + 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("/v1beta1/%v", req.GetTenant().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "tenant.name", url.QueryEscape(req.GetTenant().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateTenant[0:len((*c.CallOptions).UpdateTenant):len((*c.CallOptions).UpdateTenant)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Tenant{} + 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, "UpdateTenant") + 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 +} + +// DeleteTenant delete a single tenant. +func (c *saasDeploymentsRESTClient) DeleteTenant(ctx context.Context, req *saasservicemgmtpb.DeleteTenantRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteTenant") + return err + }, opts...) +} + +// ListUnitKinds retrieve a collection of unit kinds. +func (c *saasDeploymentsRESTClient) ListUnitKinds(ctx context.Context, req *saasservicemgmtpb.ListUnitKindsRequest, opts ...gax.CallOption) *UnitKindIterator { + it := &UnitKindIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitKindsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.UnitKind, string, error) { + resp := &saasservicemgmtpb.ListUnitKindsResponse{} + 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("/v1beta1/%v/unitKinds", 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, "ListUnitKinds") + 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.GetUnitKinds(), 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 +} + +// GetUnitKind retrieve a single unit kind. +func (c *saasDeploymentsRESTClient) GetUnitKind(ctx context.Context, req *saasservicemgmtpb.GetUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetUnitKind[0:len((*c.CallOptions).GetUnitKind):len((*c.CallOptions).GetUnitKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitKind{} + 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, "GetUnitKind") + 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 +} + +// CreateUnitKind create a new unit kind. +func (c *saasDeploymentsRESTClient) CreateUnitKind(ctx context.Context, req *saasservicemgmtpb.CreateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnitKind() + 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("/v1beta1/%v/unitKinds", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("unitKindId", fmt.Sprintf("%v", req.GetUnitKindId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateUnitKind[0:len((*c.CallOptions).CreateUnitKind):len((*c.CallOptions).CreateUnitKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitKind{} + 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, "CreateUnitKind") + 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 +} + +// UpdateUnitKind update a single unit kind. +func (c *saasDeploymentsRESTClient) UpdateUnitKind(ctx context.Context, req *saasservicemgmtpb.UpdateUnitKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitKind, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnitKind() + 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("/v1beta1/%v", req.GetUnitKind().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit_kind.name", url.QueryEscape(req.GetUnitKind().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnitKind[0:len((*c.CallOptions).UpdateUnitKind):len((*c.CallOptions).UpdateUnitKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitKind{} + 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, "UpdateUnitKind") + 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 +} + +// DeleteUnitKind delete a single unit kind. +func (c *saasDeploymentsRESTClient) DeleteUnitKind(ctx context.Context, req *saasservicemgmtpb.DeleteUnitKindRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteUnitKind") + return err + }, opts...) +} + +// ListUnits retrieve a collection of units. +func (c *saasDeploymentsRESTClient) ListUnits(ctx context.Context, req *saasservicemgmtpb.ListUnitsRequest, opts ...gax.CallOption) *UnitIterator { + it := &UnitIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Unit, string, error) { + resp := &saasservicemgmtpb.ListUnitsResponse{} + 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("/v1beta1/%v/units", 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, "ListUnits") + 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.GetUnits(), 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 +} + +// GetUnit retrieve a single unit. +func (c *saasDeploymentsRESTClient) GetUnit(ctx context.Context, req *saasservicemgmtpb.GetUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetUnit[0:len((*c.CallOptions).GetUnit):len((*c.CallOptions).GetUnit)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Unit{} + 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, "GetUnit") + 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 +} + +// CreateUnit create a new unit. +func (c *saasDeploymentsRESTClient) CreateUnit(ctx context.Context, req *saasservicemgmtpb.CreateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnit() + 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("/v1beta1/%v/units", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("unitId", fmt.Sprintf("%v", req.GetUnitId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateUnit[0:len((*c.CallOptions).CreateUnit):len((*c.CallOptions).CreateUnit)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Unit{} + 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, "CreateUnit") + 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 +} + +// UpdateUnit update a single unit. +func (c *saasDeploymentsRESTClient) UpdateUnit(ctx context.Context, req *saasservicemgmtpb.UpdateUnitRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Unit, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnit() + 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("/v1beta1/%v", req.GetUnit().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit.name", url.QueryEscape(req.GetUnit().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnit[0:len((*c.CallOptions).UpdateUnit):len((*c.CallOptions).UpdateUnit)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Unit{} + 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, "UpdateUnit") + 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 +} + +// DeleteUnit delete a single unit. +func (c *saasDeploymentsRESTClient) DeleteUnit(ctx context.Context, req *saasservicemgmtpb.DeleteUnitRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteUnit") + return err + }, opts...) +} + +// ListUnitOperations retrieve a collection of unit operations. +func (c *saasDeploymentsRESTClient) ListUnitOperations(ctx context.Context, req *saasservicemgmtpb.ListUnitOperationsRequest, opts ...gax.CallOption) *UnitOperationIterator { + it := &UnitOperationIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListUnitOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.UnitOperation, string, error) { + resp := &saasservicemgmtpb.ListUnitOperationsResponse{} + 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("/v1beta1/%v/unitOperations", 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, "ListUnitOperations") + 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.GetUnitOperations(), 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 +} + +// GetUnitOperation retrieve a single unit operation. +func (c *saasDeploymentsRESTClient) GetUnitOperation(ctx context.Context, req *saasservicemgmtpb.GetUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetUnitOperation[0:len((*c.CallOptions).GetUnitOperation):len((*c.CallOptions).GetUnitOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitOperation{} + 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, "GetUnitOperation") + 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 +} + +// CreateUnitOperation create a new unit operation. +func (c *saasDeploymentsRESTClient) CreateUnitOperation(ctx context.Context, req *saasservicemgmtpb.CreateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnitOperation() + 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("/v1beta1/%v/unitOperations", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("unitOperationId", fmt.Sprintf("%v", req.GetUnitOperationId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateUnitOperation[0:len((*c.CallOptions).CreateUnitOperation):len((*c.CallOptions).CreateUnitOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitOperation{} + 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, "CreateUnitOperation") + 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 +} + +// UpdateUnitOperation update a single unit operation. +func (c *saasDeploymentsRESTClient) UpdateUnitOperation(ctx context.Context, req *saasservicemgmtpb.UpdateUnitOperationRequest, opts ...gax.CallOption) (*saasservicemgmtpb.UnitOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetUnitOperation() + 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("/v1beta1/%v", req.GetUnitOperation().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "unit_operation.name", url.QueryEscape(req.GetUnitOperation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateUnitOperation[0:len((*c.CallOptions).UpdateUnitOperation):len((*c.CallOptions).UpdateUnitOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.UnitOperation{} + 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, "UpdateUnitOperation") + 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 +} + +// DeleteUnitOperation delete a single unit operation. +func (c *saasDeploymentsRESTClient) DeleteUnitOperation(ctx context.Context, req *saasservicemgmtpb.DeleteUnitOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteUnitOperation") + return err + }, opts...) +} + +// ListReleases retrieve a collection of releases. +func (c *saasDeploymentsRESTClient) ListReleases(ctx context.Context, req *saasservicemgmtpb.ListReleasesRequest, opts ...gax.CallOption) *ReleaseIterator { + it := &ReleaseIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListReleasesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Release, string, error) { + resp := &saasservicemgmtpb.ListReleasesResponse{} + 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("/v1beta1/%v/releases", 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, "ListReleases") + 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.GetReleases(), 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 +} + +// GetRelease retrieve a single release. +func (c *saasDeploymentsRESTClient) GetRelease(ctx context.Context, req *saasservicemgmtpb.GetReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetRelease[0:len((*c.CallOptions).GetRelease):len((*c.CallOptions).GetRelease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Release{} + 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, "GetRelease") + 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 +} + +// CreateRelease create a new release. +func (c *saasDeploymentsRESTClient) CreateRelease(ctx context.Context, req *saasservicemgmtpb.CreateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRelease() + 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("/v1beta1/%v/releases", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("releaseId", fmt.Sprintf("%v", req.GetReleaseId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateRelease[0:len((*c.CallOptions).CreateRelease):len((*c.CallOptions).CreateRelease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Release{} + 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, "CreateRelease") + 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 +} + +// UpdateRelease update a single release. +func (c *saasDeploymentsRESTClient) UpdateRelease(ctx context.Context, req *saasservicemgmtpb.UpdateReleaseRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Release, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRelease() + 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("/v1beta1/%v", req.GetRelease().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "release.name", url.QueryEscape(req.GetRelease().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateRelease[0:len((*c.CallOptions).UpdateRelease):len((*c.CallOptions).UpdateRelease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Release{} + 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, "UpdateRelease") + 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 +} + +// DeleteRelease delete a single release. +func (c *saasDeploymentsRESTClient) DeleteRelease(ctx context.Context, req *saasservicemgmtpb.DeleteReleaseRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteRelease") + return err + }, opts...) +} + +// GetLocation gets information about a location. +func (c *saasDeploymentsRESTClient) 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("/v1beta1/%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. +func (c *saasDeploymentsRESTClient) 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("/v1beta1/%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 +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_go123_test.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_go123_test.go new file mode 100644 index 000000000000..f14696091bff --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_go123_test.go @@ -0,0 +1,209 @@ +// Copyright 2025 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 saasservicemgmt_test + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleSaasDeploymentsClient_ListReleases_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListReleasesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListReleasesRequest. + } + for resp, err := range c.ListReleases(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_ListSaas_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListSaasRequest. + } + for resp, err := range c.ListSaas(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_ListTenants_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListTenantsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListTenantsRequest. + } + for resp, err := range c.ListTenants(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_ListUnitKinds_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitKindsRequest. + } + for resp, err := range c.ListUnitKinds(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_ListUnitOperations_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitOperationsRequest. + } + for resp, err := range c.ListUnitOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_ListUnits_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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitsRequest. + } + for resp, err := range c.ListUnits(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasDeploymentsClient_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 := saasservicemgmt.NewSaasDeploymentsClient(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 + } +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_test.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_test.go new file mode 100644 index 000000000000..50011976abd4 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_deployments_client_example_test.go @@ -0,0 +1,932 @@ +// Copyright 2025 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 saasservicemgmt_test + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewSaasDeploymentsClient() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewSaasDeploymentsRESTClient() { + 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 := saasservicemgmt.NewSaasDeploymentsRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleSaasDeploymentsClient_CreateRelease() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateReleaseRequest. + } + resp, err := c.CreateRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_CreateSaas() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateSaasRequest. + } + resp, err := c.CreateSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_CreateTenant() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateTenantRequest. + } + resp, err := c.CreateTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_CreateUnit() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitRequest. + } + resp, err := c.CreateUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_CreateUnitKind() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitKindRequest. + } + resp, err := c.CreateUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_CreateUnitOperation() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateUnitOperationRequest. + } + resp, err := c.CreateUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_DeleteRelease() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteReleaseRequest. + } + err = c.DeleteRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_DeleteSaas() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteSaasRequest. + } + err = c.DeleteSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_DeleteTenant() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteTenantRequest. + } + err = c.DeleteTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_DeleteUnit() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitRequest. + } + err = c.DeleteUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_DeleteUnitKind() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitKindRequest. + } + err = c.DeleteUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_DeleteUnitOperation() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteUnitOperationRequest. + } + err = c.DeleteUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasDeploymentsClient_GetRelease() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetReleaseRequest. + } + resp, err := c.GetRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_GetSaas() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetSaasRequest. + } + resp, err := c.GetSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_GetTenant() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetTenantRequest. + } + resp, err := c.GetTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_GetUnit() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitRequest. + } + resp, err := c.GetUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_GetUnitKind() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitKindRequest. + } + resp, err := c.GetUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_GetUnitOperation() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetUnitOperationRequest. + } + resp, err := c.GetUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_ListReleases() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListReleasesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListReleasesRequest. + } + it := c.ListReleases(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.(*saasservicemgmtpb.ListReleasesResponse) + } +} + +func ExampleSaasDeploymentsClient_ListSaas() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListSaasRequest. + } + it := c.ListSaas(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.(*saasservicemgmtpb.ListSaasResponse) + } +} + +func ExampleSaasDeploymentsClient_ListTenants() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListTenantsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListTenantsRequest. + } + it := c.ListTenants(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.(*saasservicemgmtpb.ListTenantsResponse) + } +} + +func ExampleSaasDeploymentsClient_ListUnitKinds() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitKindsRequest. + } + it := c.ListUnitKinds(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.(*saasservicemgmtpb.ListUnitKindsResponse) + } +} + +func ExampleSaasDeploymentsClient_ListUnitOperations() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitOperationsRequest. + } + it := c.ListUnitOperations(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.(*saasservicemgmtpb.ListUnitOperationsResponse) + } +} + +func ExampleSaasDeploymentsClient_ListUnits() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListUnitsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListUnitsRequest. + } + it := c.ListUnits(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.(*saasservicemgmtpb.ListUnitsResponse) + } +} + +func ExampleSaasDeploymentsClient_UpdateRelease() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateReleaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateReleaseRequest. + } + resp, err := c.UpdateRelease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_UpdateSaas() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateSaasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateSaasRequest. + } + resp, err := c.UpdateSaas(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_UpdateTenant() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateTenantRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateTenantRequest. + } + resp, err := c.UpdateTenant(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_UpdateUnit() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitRequest. + } + resp, err := c.UpdateUnit(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_UpdateUnitKind() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitKindRequest. + } + resp, err := c.UpdateUnitKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_UpdateUnitOperation() { + 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 := saasservicemgmt.NewSaasDeploymentsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateUnitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateUnitOperationRequest. + } + resp, err := c.UpdateUnitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasDeploymentsClient_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 := saasservicemgmt.NewSaasDeploymentsClient(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 ExampleSaasDeploymentsClient_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 := saasservicemgmt.NewSaasDeploymentsClient(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) + } +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client.go new file mode 100644 index 000000000000..e9fc16751da7 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client.go @@ -0,0 +1,1567 @@ +// Copyright 2025 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 saasservicemgmt + +import ( + "bytes" + "context" + "fmt" + "log/slog" + "math" + "net/http" + "net/url" + "time" + + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + 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 newSaasRolloutsClientHook clientHook + +// SaasRolloutsCallOptions contains the retry settings for each method of SaasRolloutsClient. +type SaasRolloutsCallOptions struct { + ListRollouts []gax.CallOption + GetRollout []gax.CallOption + CreateRollout []gax.CallOption + UpdateRollout []gax.CallOption + DeleteRollout []gax.CallOption + ListRolloutKinds []gax.CallOption + GetRolloutKind []gax.CallOption + CreateRolloutKind []gax.CallOption + UpdateRolloutKind []gax.CallOption + DeleteRolloutKind []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption +} + +func defaultSaasRolloutsGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("saasservicemgmt.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("saasservicemgmt.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("saasservicemgmt.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://saasservicemgmt.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultSaasRolloutsCallOptions() *SaasRolloutsCallOptions { + return &SaasRolloutsCallOptions{ + ListRollouts: []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, + }) + }), + }, + GetRollout: []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, + }) + }), + }, + CreateRollout: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateRollout: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteRollout: []gax.CallOption{ + gax.WithTimeout(540000 * 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, + }) + }), + }, + ListRolloutKinds: []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, + }) + }), + }, + GetRolloutKind: []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, + }) + }), + }, + CreateRolloutKind: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateRolloutKind: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteRolloutKind: []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{}, + } +} + +func defaultSaasRolloutsRESTCallOptions() *SaasRolloutsCallOptions { + return &SaasRolloutsCallOptions{ + ListRollouts: []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) + }), + }, + GetRollout: []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) + }), + }, + CreateRollout: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateRollout: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteRollout: []gax.CallOption{ + gax.WithTimeout(540000 * 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) + }), + }, + ListRolloutKinds: []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) + }), + }, + GetRolloutKind: []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) + }), + }, + CreateRolloutKind: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateRolloutKind: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteRolloutKind: []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{}, + } +} + +// internalSaasRolloutsClient is an interface that defines the methods available from SaaS Runtime API. +type internalSaasRolloutsClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListRollouts(context.Context, *saasservicemgmtpb.ListRolloutsRequest, ...gax.CallOption) *RolloutIterator + GetRollout(context.Context, *saasservicemgmtpb.GetRolloutRequest, ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) + CreateRollout(context.Context, *saasservicemgmtpb.CreateRolloutRequest, ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) + UpdateRollout(context.Context, *saasservicemgmtpb.UpdateRolloutRequest, ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) + DeleteRollout(context.Context, *saasservicemgmtpb.DeleteRolloutRequest, ...gax.CallOption) error + ListRolloutKinds(context.Context, *saasservicemgmtpb.ListRolloutKindsRequest, ...gax.CallOption) *RolloutKindIterator + GetRolloutKind(context.Context, *saasservicemgmtpb.GetRolloutKindRequest, ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) + CreateRolloutKind(context.Context, *saasservicemgmtpb.CreateRolloutKindRequest, ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) + UpdateRolloutKind(context.Context, *saasservicemgmtpb.UpdateRolloutKindRequest, ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) + DeleteRolloutKind(context.Context, *saasservicemgmtpb.DeleteRolloutKindRequest, ...gax.CallOption) error + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator +} + +// SaasRolloutsClient is a client for interacting with SaaS Runtime API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Manages the rollout of SaaS services. +type SaasRolloutsClient struct { + // The internal transport-dependent client. + internalClient internalSaasRolloutsClient + + // The call options for this service. + CallOptions *SaasRolloutsCallOptions +} + +// 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 *SaasRolloutsClient) 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 *SaasRolloutsClient) 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 *SaasRolloutsClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListRollouts retrieve a collection of rollouts. +func (c *SaasRolloutsClient) ListRollouts(ctx context.Context, req *saasservicemgmtpb.ListRolloutsRequest, opts ...gax.CallOption) *RolloutIterator { + return c.internalClient.ListRollouts(ctx, req, opts...) +} + +// GetRollout retrieve a single rollout. +func (c *SaasRolloutsClient) GetRollout(ctx context.Context, req *saasservicemgmtpb.GetRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + return c.internalClient.GetRollout(ctx, req, opts...) +} + +// CreateRollout create a new rollout. +func (c *SaasRolloutsClient) CreateRollout(ctx context.Context, req *saasservicemgmtpb.CreateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + return c.internalClient.CreateRollout(ctx, req, opts...) +} + +// UpdateRollout update a single rollout. +func (c *SaasRolloutsClient) UpdateRollout(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + return c.internalClient.UpdateRollout(ctx, req, opts...) +} + +// DeleteRollout delete a single rollout. +func (c *SaasRolloutsClient) DeleteRollout(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteRollout(ctx, req, opts...) +} + +// ListRolloutKinds retrieve a collection of rollout kinds. +func (c *SaasRolloutsClient) ListRolloutKinds(ctx context.Context, req *saasservicemgmtpb.ListRolloutKindsRequest, opts ...gax.CallOption) *RolloutKindIterator { + return c.internalClient.ListRolloutKinds(ctx, req, opts...) +} + +// GetRolloutKind retrieve a single rollout kind. +func (c *SaasRolloutsClient) GetRolloutKind(ctx context.Context, req *saasservicemgmtpb.GetRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + return c.internalClient.GetRolloutKind(ctx, req, opts...) +} + +// CreateRolloutKind create a new rollout kind. +func (c *SaasRolloutsClient) CreateRolloutKind(ctx context.Context, req *saasservicemgmtpb.CreateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + return c.internalClient.CreateRolloutKind(ctx, req, opts...) +} + +// UpdateRolloutKind update a single rollout kind. +func (c *SaasRolloutsClient) UpdateRolloutKind(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + return c.internalClient.UpdateRolloutKind(ctx, req, opts...) +} + +// DeleteRolloutKind delete a single rollout kind. +func (c *SaasRolloutsClient) DeleteRolloutKind(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutKindRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteRolloutKind(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *SaasRolloutsClient) 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. +func (c *SaasRolloutsClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// saasRolloutsGRPCClient is a client for interacting with SaaS Runtime API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type saasRolloutsGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing SaasRolloutsClient + CallOptions **SaasRolloutsCallOptions + + // The gRPC API client. + saasRolloutsClient saasservicemgmtpb.SaasRolloutsClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewSaasRolloutsClient creates a new saas rollouts client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Manages the rollout of SaaS services. +func NewSaasRolloutsClient(ctx context.Context, opts ...option.ClientOption) (*SaasRolloutsClient, error) { + clientOpts := defaultSaasRolloutsGRPCClientOptions() + if newSaasRolloutsClientHook != nil { + hookOpts, err := newSaasRolloutsClientHook(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 := SaasRolloutsClient{CallOptions: defaultSaasRolloutsCallOptions()} + + c := &saasRolloutsGRPCClient{ + connPool: connPool, + saasRolloutsClient: saasservicemgmtpb.NewSaasRolloutsClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + 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 *saasRolloutsGRPCClient) 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 *saasRolloutsGRPCClient) 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 *saasRolloutsGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type saasRolloutsRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing SaasRolloutsClient + CallOptions **SaasRolloutsCallOptions + + logger *slog.Logger +} + +// NewSaasRolloutsRESTClient creates a new saas rollouts rest client. +// +// Manages the rollout of SaaS services. +func NewSaasRolloutsRESTClient(ctx context.Context, opts ...option.ClientOption) (*SaasRolloutsClient, error) { + clientOpts := append(defaultSaasRolloutsRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultSaasRolloutsRESTCallOptions() + c := &saasRolloutsRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + logger: internaloption.GetLogger(opts), + } + c.setGoogleClientInfo() + + return &SaasRolloutsClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultSaasRolloutsRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://saasservicemgmt.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://saasservicemgmt.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://saasservicemgmt.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://saasservicemgmt.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 *saasRolloutsRESTClient) 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 *saasRolloutsRESTClient) 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 *saasRolloutsRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *saasRolloutsGRPCClient) ListRollouts(ctx context.Context, req *saasservicemgmtpb.ListRolloutsRequest, opts ...gax.CallOption) *RolloutIterator { + 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).ListRollouts[0:len((*c.CallOptions).ListRollouts):len((*c.CallOptions).ListRollouts)], opts...) + it := &RolloutIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListRolloutsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Rollout, string, error) { + resp := &saasservicemgmtpb.ListRolloutsResponse{} + 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.saasRolloutsClient.ListRollouts, req, settings.GRPC, c.logger, "ListRollouts") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetRollouts(), 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 *saasRolloutsGRPCClient) GetRollout(ctx context.Context, req *saasservicemgmtpb.GetRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, 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).GetRollout[0:len((*c.CallOptions).GetRollout):len((*c.CallOptions).GetRollout)], opts...) + var resp *saasservicemgmtpb.Rollout + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.GetRollout, req, settings.GRPC, c.logger, "GetRollout") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) CreateRollout(ctx context.Context, req *saasservicemgmtpb.CreateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, 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).CreateRollout[0:len((*c.CallOptions).CreateRollout):len((*c.CallOptions).CreateRollout)], opts...) + var resp *saasservicemgmtpb.Rollout + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.CreateRollout, req, settings.GRPC, c.logger, "CreateRollout") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) UpdateRollout(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "rollout.name", url.QueryEscape(req.GetRollout().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateRollout[0:len((*c.CallOptions).UpdateRollout):len((*c.CallOptions).UpdateRollout)], opts...) + var resp *saasservicemgmtpb.Rollout + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.UpdateRollout, req, settings.GRPC, c.logger, "UpdateRollout") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) DeleteRollout(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutRequest, 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).DeleteRollout[0:len((*c.CallOptions).DeleteRollout):len((*c.CallOptions).DeleteRollout)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasRolloutsClient.DeleteRollout, req, settings.GRPC, c.logger, "DeleteRollout") + return err + }, opts...) + return err +} + +func (c *saasRolloutsGRPCClient) ListRolloutKinds(ctx context.Context, req *saasservicemgmtpb.ListRolloutKindsRequest, opts ...gax.CallOption) *RolloutKindIterator { + 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).ListRolloutKinds[0:len((*c.CallOptions).ListRolloutKinds):len((*c.CallOptions).ListRolloutKinds)], opts...) + it := &RolloutKindIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListRolloutKindsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.RolloutKind, string, error) { + resp := &saasservicemgmtpb.ListRolloutKindsResponse{} + 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.saasRolloutsClient.ListRolloutKinds, req, settings.GRPC, c.logger, "ListRolloutKinds") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetRolloutKinds(), 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 *saasRolloutsGRPCClient) GetRolloutKind(ctx context.Context, req *saasservicemgmtpb.GetRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, 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).GetRolloutKind[0:len((*c.CallOptions).GetRolloutKind):len((*c.CallOptions).GetRolloutKind)], opts...) + var resp *saasservicemgmtpb.RolloutKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.GetRolloutKind, req, settings.GRPC, c.logger, "GetRolloutKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) CreateRolloutKind(ctx context.Context, req *saasservicemgmtpb.CreateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, 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).CreateRolloutKind[0:len((*c.CallOptions).CreateRolloutKind):len((*c.CallOptions).CreateRolloutKind)], opts...) + var resp *saasservicemgmtpb.RolloutKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.CreateRolloutKind, req, settings.GRPC, c.logger, "CreateRolloutKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) UpdateRolloutKind(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "rollout_kind.name", url.QueryEscape(req.GetRolloutKind().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateRolloutKind[0:len((*c.CallOptions).UpdateRolloutKind):len((*c.CallOptions).UpdateRolloutKind)], opts...) + var resp *saasservicemgmtpb.RolloutKind + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.saasRolloutsClient.UpdateRolloutKind, req, settings.GRPC, c.logger, "UpdateRolloutKind") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *saasRolloutsGRPCClient) DeleteRolloutKind(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutKindRequest, 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).DeleteRolloutKind[0:len((*c.CallOptions).DeleteRolloutKind):len((*c.CallOptions).DeleteRolloutKind)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.saasRolloutsClient.DeleteRolloutKind, req, settings.GRPC, c.logger, "DeleteRolloutKind") + return err + }, opts...) + return err +} + +func (c *saasRolloutsGRPCClient) 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 *saasRolloutsGRPCClient) 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 +} + +// ListRollouts retrieve a collection of rollouts. +func (c *saasRolloutsRESTClient) ListRollouts(ctx context.Context, req *saasservicemgmtpb.ListRolloutsRequest, opts ...gax.CallOption) *RolloutIterator { + it := &RolloutIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListRolloutsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.Rollout, string, error) { + resp := &saasservicemgmtpb.ListRolloutsResponse{} + 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("/v1beta1/%v/rollouts", 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, "ListRollouts") + 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.GetRollouts(), 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 +} + +// GetRollout retrieve a single rollout. +func (c *saasRolloutsRESTClient) GetRollout(ctx context.Context, req *saasservicemgmtpb.GetRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetRollout[0:len((*c.CallOptions).GetRollout):len((*c.CallOptions).GetRollout)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Rollout{} + 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, "GetRollout") + 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 +} + +// CreateRollout create a new rollout. +func (c *saasRolloutsRESTClient) CreateRollout(ctx context.Context, req *saasservicemgmtpb.CreateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRollout() + 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("/v1beta1/%v/rollouts", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("rolloutId", fmt.Sprintf("%v", req.GetRolloutId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateRollout[0:len((*c.CallOptions).CreateRollout):len((*c.CallOptions).CreateRollout)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Rollout{} + 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, "CreateRollout") + 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 +} + +// UpdateRollout update a single rollout. +func (c *saasRolloutsRESTClient) UpdateRollout(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutRequest, opts ...gax.CallOption) (*saasservicemgmtpb.Rollout, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRollout() + 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("/v1beta1/%v", req.GetRollout().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "rollout.name", url.QueryEscape(req.GetRollout().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateRollout[0:len((*c.CallOptions).UpdateRollout):len((*c.CallOptions).UpdateRollout)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.Rollout{} + 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, "UpdateRollout") + 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 +} + +// DeleteRollout delete a single rollout. +func (c *saasRolloutsRESTClient) DeleteRollout(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteRollout") + return err + }, opts...) +} + +// ListRolloutKinds retrieve a collection of rollout kinds. +func (c *saasRolloutsRESTClient) ListRolloutKinds(ctx context.Context, req *saasservicemgmtpb.ListRolloutKindsRequest, opts ...gax.CallOption) *RolloutKindIterator { + it := &RolloutKindIterator{} + req = proto.Clone(req).(*saasservicemgmtpb.ListRolloutKindsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*saasservicemgmtpb.RolloutKind, string, error) { + resp := &saasservicemgmtpb.ListRolloutKindsResponse{} + 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("/v1beta1/%v/rolloutKinds", 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, "ListRolloutKinds") + 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.GetRolloutKinds(), 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 +} + +// GetRolloutKind retrieve a single rollout kind. +func (c *saasRolloutsRESTClient) GetRolloutKind(ctx context.Context, req *saasservicemgmtpb.GetRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%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).GetRolloutKind[0:len((*c.CallOptions).GetRolloutKind):len((*c.CallOptions).GetRolloutKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.RolloutKind{} + 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, "GetRolloutKind") + 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 +} + +// CreateRolloutKind create a new rollout kind. +func (c *saasRolloutsRESTClient) CreateRolloutKind(ctx context.Context, req *saasservicemgmtpb.CreateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRolloutKind() + 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("/v1beta1/%v/rolloutKinds", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("rolloutKindId", fmt.Sprintf("%v", req.GetRolloutKindId())) + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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).CreateRolloutKind[0:len((*c.CallOptions).CreateRolloutKind):len((*c.CallOptions).CreateRolloutKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.RolloutKind{} + 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, "CreateRolloutKind") + 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 +} + +// UpdateRolloutKind update a single rollout kind. +func (c *saasRolloutsRESTClient) UpdateRolloutKind(ctx context.Context, req *saasservicemgmtpb.UpdateRolloutKindRequest, opts ...gax.CallOption) (*saasservicemgmtpb.RolloutKind, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetRolloutKind() + 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("/v1beta1/%v", req.GetRolloutKind().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])) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "rollout_kind.name", url.QueryEscape(req.GetRolloutKind().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateRolloutKind[0:len((*c.CallOptions).UpdateRolloutKind):len((*c.CallOptions).UpdateRolloutKind)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &saasservicemgmtpb.RolloutKind{} + 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, "UpdateRolloutKind") + 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 +} + +// DeleteRolloutKind delete a single rollout kind. +func (c *saasRolloutsRESTClient) DeleteRolloutKind(ctx context.Context, req *saasservicemgmtpb.DeleteRolloutKindRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetEtag() != "" { + params.Add("etag", fmt.Sprintf("%v", req.GetEtag())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetValidateOnly() { + params.Add("validateOnly", fmt.Sprintf("%v", req.GetValidateOnly())) + } + + 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, "DeleteRolloutKind") + return err + }, opts...) +} + +// GetLocation gets information about a location. +func (c *saasRolloutsRESTClient) 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("/v1beta1/%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. +func (c *saasRolloutsRESTClient) 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("/v1beta1/%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 +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_go123_test.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_go123_test.go new file mode 100644 index 000000000000..bb83298975d3 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_go123_test.go @@ -0,0 +1,105 @@ +// Copyright 2025 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 saasservicemgmt_test + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleSaasRolloutsClient_ListRolloutKinds_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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutKindsRequest. + } + for resp, err := range c.ListRolloutKinds(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasRolloutsClient_ListRollouts_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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutsRequest. + } + for resp, err := range c.ListRollouts(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSaasRolloutsClient_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 := saasservicemgmt.NewSaasRolloutsClient(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 + } +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_test.go b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_test.go new file mode 100644 index 000000000000..c83001d3adaa --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saas_rollouts_client_example_test.go @@ -0,0 +1,392 @@ +// Copyright 2025 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 saasservicemgmt_test + +import ( + "context" + + saasservicemgmt "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1" + saasservicemgmtpb "cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewSaasRolloutsClient() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewSaasRolloutsRESTClient() { + 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 := saasservicemgmt.NewSaasRolloutsRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleSaasRolloutsClient_CreateRollout() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateRolloutRequest. + } + resp, err := c.CreateRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_CreateRolloutKind() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.CreateRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#CreateRolloutKindRequest. + } + resp, err := c.CreateRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_DeleteRollout() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteRolloutRequest. + } + err = c.DeleteRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasRolloutsClient_DeleteRolloutKind() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.DeleteRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#DeleteRolloutKindRequest. + } + err = c.DeleteRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSaasRolloutsClient_GetRollout() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetRolloutRequest. + } + resp, err := c.GetRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_GetRolloutKind() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.GetRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#GetRolloutKindRequest. + } + resp, err := c.GetRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_ListRolloutKinds() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutKindsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutKindsRequest. + } + it := c.ListRolloutKinds(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.(*saasservicemgmtpb.ListRolloutKindsResponse) + } +} + +func ExampleSaasRolloutsClient_ListRollouts() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.ListRolloutsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#ListRolloutsRequest. + } + it := c.ListRollouts(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.(*saasservicemgmtpb.ListRolloutsResponse) + } +} + +func ExampleSaasRolloutsClient_UpdateRollout() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateRolloutRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateRolloutRequest. + } + resp, err := c.UpdateRollout(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_UpdateRolloutKind() { + 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 := saasservicemgmt.NewSaasRolloutsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &saasservicemgmtpb.UpdateRolloutKindRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb#UpdateRolloutKindRequest. + } + resp, err := c.UpdateRolloutKind(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSaasRolloutsClient_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 := saasservicemgmt.NewSaasRolloutsClient(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 ExampleSaasRolloutsClient_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 := saasservicemgmt.NewSaasRolloutsClient(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) + } +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/common.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/common.pb.go new file mode 100644 index 000000000000..ce0d1274788f --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/common.pb.go @@ -0,0 +1,979 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/common.proto + +package saasservicemgmtpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +// UnitOperationErrorCategory describes the error category of the unit +// operation. +type UnitOperationErrorCategory int32 + +const ( + // Unit operation error category is unspecified + UnitOperationErrorCategory_UNIT_OPERATION_ERROR_CATEGORY_UNSPECIFIED UnitOperationErrorCategory = 0 + // Unit operation error category is not applicable, or it is not an error + UnitOperationErrorCategory_NOT_APPLICABLE UnitOperationErrorCategory = 1 + // Unit operation error category is fatal + UnitOperationErrorCategory_FATAL UnitOperationErrorCategory = 2 + // Unit operation error category is retriable + UnitOperationErrorCategory_RETRIABLE UnitOperationErrorCategory = 3 + // Unit operation error category is ignorable + UnitOperationErrorCategory_IGNORABLE UnitOperationErrorCategory = 4 + // Unit operation error category is standard, counts towards Rollout error + // budget + UnitOperationErrorCategory_STANDARD UnitOperationErrorCategory = 5 +) + +// Enum value maps for UnitOperationErrorCategory. +var ( + UnitOperationErrorCategory_name = map[int32]string{ + 0: "UNIT_OPERATION_ERROR_CATEGORY_UNSPECIFIED", + 1: "NOT_APPLICABLE", + 2: "FATAL", + 3: "RETRIABLE", + 4: "IGNORABLE", + 5: "STANDARD", + } + UnitOperationErrorCategory_value = map[string]int32{ + "UNIT_OPERATION_ERROR_CATEGORY_UNSPECIFIED": 0, + "NOT_APPLICABLE": 1, + "FATAL": 2, + "RETRIABLE": 3, + "IGNORABLE": 4, + "STANDARD": 5, + } +) + +func (x UnitOperationErrorCategory) Enum() *UnitOperationErrorCategory { + p := new(UnitOperationErrorCategory) + *p = x + return p +} + +func (x UnitOperationErrorCategory) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitOperationErrorCategory) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[0].Descriptor() +} + +func (UnitOperationErrorCategory) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[0] +} + +func (x UnitOperationErrorCategory) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitOperationErrorCategory.Descriptor instead. +func (UnitOperationErrorCategory) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{0} +} + +// Enumeration of variable types. +type UnitVariable_Type int32 + +const ( + // Variable type is unspecified. + UnitVariable_TYPE_UNSPECIFIED UnitVariable_Type = 0 + // Variable type is string. + UnitVariable_STRING UnitVariable_Type = 1 + // Variable type is int. + UnitVariable_INT UnitVariable_Type = 2 + // Variable type is bool. + UnitVariable_BOOL UnitVariable_Type = 3 +) + +// Enum value maps for UnitVariable_Type. +var ( + UnitVariable_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "STRING", + 2: "INT", + 3: "BOOL", + } + UnitVariable_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "STRING": 1, + "INT": 2, + "BOOL": 3, + } +) + +func (x UnitVariable_Type) Enum() *UnitVariable_Type { + p := new(UnitVariable_Type) + *p = x + return p +} + +func (x UnitVariable_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitVariable_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[1].Descriptor() +} + +func (UnitVariable_Type) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[1] +} + +func (x UnitVariable_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitVariable_Type.Descriptor instead. +func (UnitVariable_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{1, 0} +} + +// Enumeration of condition statuses. +type UnitCondition_Status int32 + +const ( + // Condition status is unspecified. + UnitCondition_STATUS_UNSPECIFIED UnitCondition_Status = 0 + // Condition is unknown. + UnitCondition_STATUS_UNKNOWN UnitCondition_Status = 1 + // Condition is true. + UnitCondition_STATUS_TRUE UnitCondition_Status = 2 + // Condition is false. + UnitCondition_STATUS_FALSE UnitCondition_Status = 3 +) + +// Enum value maps for UnitCondition_Status. +var ( + UnitCondition_Status_name = map[int32]string{ + 0: "STATUS_UNSPECIFIED", + 1: "STATUS_UNKNOWN", + 2: "STATUS_TRUE", + 3: "STATUS_FALSE", + } + UnitCondition_Status_value = map[string]int32{ + "STATUS_UNSPECIFIED": 0, + "STATUS_UNKNOWN": 1, + "STATUS_TRUE": 2, + "STATUS_FALSE": 3, + } +) + +func (x UnitCondition_Status) Enum() *UnitCondition_Status { + p := new(UnitCondition_Status) + *p = x + return p +} + +func (x UnitCondition_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitCondition_Status) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[2].Descriptor() +} + +func (UnitCondition_Status) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[2] +} + +func (x UnitCondition_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitCondition_Status.Descriptor instead. +func (UnitCondition_Status) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{2, 0} +} + +// Enumeration of condition types. +type UnitCondition_Type int32 + +const ( + // Condition type is unspecified. + UnitCondition_TYPE_UNSPECIFIED UnitCondition_Type = 0 + // Condition type is ready. + UnitCondition_TYPE_READY UnitCondition_Type = 1 + // Condition type is updating. + UnitCondition_TYPE_UPDATING UnitCondition_Type = 2 + // Condition type is provisioned. + UnitCondition_TYPE_PROVISIONED UnitCondition_Type = 3 + // Condition type is operationError. + // True when the last unit operation fails with a non-ignorable error. + UnitCondition_TYPE_OPERATION_ERROR UnitCondition_Type = 4 +) + +// Enum value maps for UnitCondition_Type. +var ( + UnitCondition_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "TYPE_READY", + 2: "TYPE_UPDATING", + 3: "TYPE_PROVISIONED", + 4: "TYPE_OPERATION_ERROR", + } + UnitCondition_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "TYPE_READY": 1, + "TYPE_UPDATING": 2, + "TYPE_PROVISIONED": 3, + "TYPE_OPERATION_ERROR": 4, + } +) + +func (x UnitCondition_Type) Enum() *UnitCondition_Type { + p := new(UnitCondition_Type) + *p = x + return p +} + +func (x UnitCondition_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitCondition_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[3].Descriptor() +} + +func (UnitCondition_Type) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[3] +} + +func (x UnitCondition_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitCondition_Type.Descriptor instead. +func (UnitCondition_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{2, 1} +} + +// Enumeration of condition statuses. +type UnitOperationCondition_Status int32 + +const ( + // Condition status is unspecified. + UnitOperationCondition_STATUS_UNSPECIFIED UnitOperationCondition_Status = 0 + // Condition is unknown. + UnitOperationCondition_STATUS_UNKNOWN UnitOperationCondition_Status = 1 + // Condition is true. + UnitOperationCondition_STATUS_TRUE UnitOperationCondition_Status = 2 + // Condition is false. + UnitOperationCondition_STATUS_FALSE UnitOperationCondition_Status = 3 +) + +// Enum value maps for UnitOperationCondition_Status. +var ( + UnitOperationCondition_Status_name = map[int32]string{ + 0: "STATUS_UNSPECIFIED", + 1: "STATUS_UNKNOWN", + 2: "STATUS_TRUE", + 3: "STATUS_FALSE", + } + UnitOperationCondition_Status_value = map[string]int32{ + "STATUS_UNSPECIFIED": 0, + "STATUS_UNKNOWN": 1, + "STATUS_TRUE": 2, + "STATUS_FALSE": 3, + } +) + +func (x UnitOperationCondition_Status) Enum() *UnitOperationCondition_Status { + p := new(UnitOperationCondition_Status) + *p = x + return p +} + +func (x UnitOperationCondition_Status) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitOperationCondition_Status) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[4].Descriptor() +} + +func (UnitOperationCondition_Status) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[4] +} + +func (x UnitOperationCondition_Status) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitOperationCondition_Status.Descriptor instead. +func (UnitOperationCondition_Status) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{3, 0} +} + +// Enumeration of condition types. +type UnitOperationCondition_Type int32 + +const ( + // Condition type is unspecified. + UnitOperationCondition_TYPE_UNSPECIFIED UnitOperationCondition_Type = 0 + // Condition type is scheduled. + UnitOperationCondition_TYPE_SCHEDULED UnitOperationCondition_Type = 2 + // Condition type is running. + UnitOperationCondition_TYPE_RUNNING UnitOperationCondition_Type = 3 + // Condition type is succeeded. + UnitOperationCondition_TYPE_SUCCEEDED UnitOperationCondition_Type = 4 + // Condition type is cancelled. + UnitOperationCondition_TYPE_CANCELLED UnitOperationCondition_Type = 5 +) + +// Enum value maps for UnitOperationCondition_Type. +var ( + UnitOperationCondition_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 2: "TYPE_SCHEDULED", + 3: "TYPE_RUNNING", + 4: "TYPE_SUCCEEDED", + 5: "TYPE_CANCELLED", + } + UnitOperationCondition_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "TYPE_SCHEDULED": 2, + "TYPE_RUNNING": 3, + "TYPE_SUCCEEDED": 4, + "TYPE_CANCELLED": 5, + } +) + +func (x UnitOperationCondition_Type) Enum() *UnitOperationCondition_Type { + p := new(UnitOperationCondition_Type) + *p = x + return p +} + +func (x UnitOperationCondition_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitOperationCondition_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[5].Descriptor() +} + +func (UnitOperationCondition_Type) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes[5] +} + +func (x UnitOperationCondition_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitOperationCondition_Type.Descriptor instead. +func (UnitOperationCondition_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{3, 1} +} + +// Blueprints are OCI Images that contain all of the artifacts needed to +// provision a unit. Metadata such as, type of the engine used to actuate the +// blueprint (e.g. terraform, helm etc) and version will come from the image +// manifest. If the hostname is omitted, it will be assumed to be the regional +// path to Artifact Registry (eg. us-east1-docker.pkg.dev). +type Blueprint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Immutable. URI to a blueprint used by the Unit (required unless + // unitKind or release is set). + Package string `protobuf:"bytes,1,opt,name=package,proto3" json:"package,omitempty"` + // Output only. Type of the engine used to actuate the blueprint. e.g. + // terraform, helm etc. + Engine string `protobuf:"bytes,2,opt,name=engine,proto3" json:"engine,omitempty"` + // Output only. Version metadata if present on the blueprint. + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *Blueprint) Reset() { + *x = Blueprint{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Blueprint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Blueprint) ProtoMessage() {} + +func (x *Blueprint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_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 Blueprint.ProtoReflect.Descriptor instead. +func (*Blueprint) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{0} +} + +func (x *Blueprint) GetPackage() string { + if x != nil { + return x.Package + } + return "" +} + +func (x *Blueprint) GetEngine() string { + if x != nil { + return x.Engine + } + return "" +} + +func (x *Blueprint) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +// UnitVariable describes a parameter for a Unit. +type UnitVariable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Immutable. Name of the variable from actuation configs. + Variable string `protobuf:"bytes,1,opt,name=variable,proto3" json:"variable,omitempty"` + // Optional. Immutable. Name of a supported variable type. Supported types are + // string, int, bool. + Type UnitVariable_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable_Type" json:"type,omitempty"` + // Optional. String encoded value for the variable. + Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *UnitVariable) Reset() { + *x = UnitVariable{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitVariable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitVariable) ProtoMessage() {} + +func (x *UnitVariable) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_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 UnitVariable.ProtoReflect.Descriptor instead. +func (*UnitVariable) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{1} +} + +func (x *UnitVariable) GetVariable() string { + if x != nil { + return x.Variable + } + return "" +} + +func (x *UnitVariable) GetType() UnitVariable_Type { + if x != nil { + return x.Type + } + return UnitVariable_TYPE_UNSPECIFIED +} + +func (x *UnitVariable) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +// UnitCondition describes the status of an Unit. UnitCondition is individual +// components that contribute to an overall state. +type UnitCondition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Status of the condition. + Status UnitCondition_Status `protobuf:"varint,1,opt,name=status,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition_Status" json:"status,omitempty"` + // Required. Type of the condition. + Type UnitCondition_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition_Type" json:"type,omitempty"` + // Required. Last time the condition transited from one status to another. + LastTransitionTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_transition_time,json=lastTransitionTime,proto3" json:"last_transition_time,omitempty"` + // Required. Human readable message indicating details about the last + // transition. + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` + // Required. Brief reason for the condition's last transition. + Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *UnitCondition) Reset() { + *x = UnitCondition{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitCondition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitCondition) ProtoMessage() {} + +func (x *UnitCondition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_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 UnitCondition.ProtoReflect.Descriptor instead. +func (*UnitCondition) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{2} +} + +func (x *UnitCondition) GetStatus() UnitCondition_Status { + if x != nil { + return x.Status + } + return UnitCondition_STATUS_UNSPECIFIED +} + +func (x *UnitCondition) GetType() UnitCondition_Type { + if x != nil { + return x.Type + } + return UnitCondition_TYPE_UNSPECIFIED +} + +func (x *UnitCondition) GetLastTransitionTime() *timestamppb.Timestamp { + if x != nil { + return x.LastTransitionTime + } + return nil +} + +func (x *UnitCondition) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *UnitCondition) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +// UnitOperationCondition describes the status of an Unit Operation. +// UnitOperationCondition is individual components that contribute to an overall +// state. +type UnitOperationCondition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Status of the condition. + Status UnitOperationCondition_Status `protobuf:"varint,1,opt,name=status,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition_Status" json:"status,omitempty"` + // Required. Type of the condition. + Type UnitOperationCondition_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition_Type" json:"type,omitempty"` + // Required. Last time the condition transited from one status to another. + LastTransitionTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=last_transition_time,json=lastTransitionTime,proto3" json:"last_transition_time,omitempty"` + // Required. Human readable message indicating details about the last + // transition. + Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` + // Required. Brief reason for the condition's last transition. + Reason string `protobuf:"bytes,5,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *UnitOperationCondition) Reset() { + *x = UnitOperationCondition{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitOperationCondition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitOperationCondition) ProtoMessage() {} + +func (x *UnitOperationCondition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_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 UnitOperationCondition.ProtoReflect.Descriptor instead. +func (*UnitOperationCondition) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{3} +} + +func (x *UnitOperationCondition) GetStatus() UnitOperationCondition_Status { + if x != nil { + return x.Status + } + return UnitOperationCondition_STATUS_UNSPECIFIED +} + +func (x *UnitOperationCondition) GetType() UnitOperationCondition_Type { + if x != nil { + return x.Type + } + return UnitOperationCondition_TYPE_UNSPECIFIED +} + +func (x *UnitOperationCondition) GetLastTransitionTime() *timestamppb.Timestamp { + if x != nil { + return x.LastTransitionTime + } + return nil +} + +func (x *UnitOperationCondition) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *UnitOperationCondition) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +// Represents the aggregation of a set of population of like records by a +// certain group. For example, a collection of unit counts can be aggregated and +// grouped by their state. +type Aggregate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Group by which to aggregate. + Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + // Required. Number of records in the group. + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *Aggregate) Reset() { + *x = Aggregate{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Aggregate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Aggregate) ProtoMessage() {} + +func (x *Aggregate) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_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 Aggregate.ProtoReflect.Descriptor instead. +func (*Aggregate) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP(), []int{4} +} + +func (x *Aggregate) GetGroup() string { + if x != nil { + return x.Group + } + return "" +} + +func (x *Aggregate) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +var File_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto protoreflect.FileDescriptor + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDesc = []byte{ + 0x0a, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 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, 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, 0x69, 0x0a, 0x09, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x22, 0xec, 0x01, 0x0a, 0x0c, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x22, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x60, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, + 0x05, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0x3b, 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, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, + 0x49, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x03, 0x22, + 0xae, 0x04, 0x0a, 0x0d, 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x64, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x02, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x57, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x03, 0x22, + 0x6f, 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, 0x0e, 0x0a, + 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x11, 0x0a, + 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, + 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, + 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, + 0x22, 0xc4, 0x04, 0x0a, 0x16, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6d, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x50, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x67, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x14, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 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, 0x02, 0x52, 0x12, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x22, 0x57, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, + 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x54, 0x52, 0x55, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x4c, 0x53, 0x45, 0x10, 0x03, 0x22, 0x6a, 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, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x10, 0x0a, + 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, + 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, + 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, + 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x22, 0x41, 0x0a, 0x09, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x2a, 0x96, 0x01, 0x0a, 0x1a, 0x55, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x2d, 0x0a, 0x29, 0x55, 0x4e, 0x49, + 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x5f, 0x43, 0x41, 0x54, 0x45, 0x47, 0x4f, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x54, 0x5f, + 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, + 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x54, 0x52, 0x49, + 0x41, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x47, 0x4e, 0x4f, 0x52, 0x41, + 0x42, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, + 0x44, 0x10, 0x05, 0x42, 0xc7, 0x02, 0x0a, 0x35, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0b, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x61, + 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0x3b, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0xaa, 0x02, 0x31, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x53, 0x61, 0x61, + 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, + 0x31, 0xca, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x5c, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x53, 0x61, + 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x35, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescOnce sync.Once + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescData = file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDesc +) + +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescGZIP() []byte { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescOnce.Do(func() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescData) + }) + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDescData +} + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 6) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_goTypes = []any{ + (UnitOperationErrorCategory)(0), // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationErrorCategory + (UnitVariable_Type)(0), // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable.Type + (UnitCondition_Status)(0), // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.Status + (UnitCondition_Type)(0), // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.Type + (UnitOperationCondition_Status)(0), // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.Status + (UnitOperationCondition_Type)(0), // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.Type + (*Blueprint)(nil), // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.Blueprint + (*UnitVariable)(nil), // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + (*UnitCondition)(nil), // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition + (*UnitOperationCondition)(nil), // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition + (*Aggregate)(nil), // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.Aggregate + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp +} +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_depIdxs = []int32{ + 1, // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable.type:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable.Type + 2, // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.status:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.Status + 3, // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.type:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.Type + 11, // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition.last_transition_time:type_name -> google.protobuf.Timestamp + 4, // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.status:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.Status + 5, // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.type:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.Type + 11, // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition.last_transition_time:type_name -> google.protobuf.Timestamp + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_init() } +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_init() { + if File_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDesc, + NumEnums: 6, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_goTypes, + DependencyIndexes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_depIdxs, + EnumInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_enumTypes, + MessageInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_msgTypes, + }.Build() + File_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto = out.File + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_rawDesc = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_goTypes = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_depIdxs = nil +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_resources.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_resources.pb.go new file mode 100644 index 000000000000..5fb99a32c7e0 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_resources.pb.go @@ -0,0 +1,3026 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/deployments_resources.proto + +package saasservicemgmtpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +// UnitState annotates what is the current state of the unit itself. +type Unit_UnitState int32 + +const ( + // Unspecified state. + Unit_UNIT_STATE_UNSPECIFIED Unit_UnitState = 0 + // Unit is not provisioned. + Unit_UNIT_STATE_NOT_PROVISIONED Unit_UnitState = 1 + // Unit is being provisioned. + Unit_UNIT_STATE_PROVISIONING Unit_UnitState = 2 + // Unit is being updated. This is typically when a unit is being upgraded to + // a new release or some of the input variables on the Unit is being + // changed. Certain kinds of updates may cause the Unit to become unusable + // while the update is in progress. + Unit_UNIT_STATE_UPDATING Unit_UnitState = 3 + // Unit is being deleted. + Unit_UNIT_STATE_DEPROVISIONING Unit_UnitState = 4 + // Unit has been provisioned and is ready for use + Unit_UNIT_STATE_READY Unit_UnitState = 5 + // Unit has error, when it is not ready and some error operation + Unit_UNIT_STATE_ERROR Unit_UnitState = 6 +) + +// Enum value maps for Unit_UnitState. +var ( + Unit_UnitState_name = map[int32]string{ + 0: "UNIT_STATE_UNSPECIFIED", + 1: "UNIT_STATE_NOT_PROVISIONED", + 2: "UNIT_STATE_PROVISIONING", + 3: "UNIT_STATE_UPDATING", + 4: "UNIT_STATE_DEPROVISIONING", + 5: "UNIT_STATE_READY", + 6: "UNIT_STATE_ERROR", + } + Unit_UnitState_value = map[string]int32{ + "UNIT_STATE_UNSPECIFIED": 0, + "UNIT_STATE_NOT_PROVISIONED": 1, + "UNIT_STATE_PROVISIONING": 2, + "UNIT_STATE_UPDATING": 3, + "UNIT_STATE_DEPROVISIONING": 4, + "UNIT_STATE_READY": 5, + "UNIT_STATE_ERROR": 6, + } +) + +func (x Unit_UnitState) Enum() *Unit_UnitState { + p := new(Unit_UnitState) + *p = x + return p +} + +func (x Unit_UnitState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Unit_UnitState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[0].Descriptor() +} + +func (Unit_UnitState) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[0] +} + +func (x Unit_UnitState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Unit_UnitState.Descriptor instead. +func (Unit_UnitState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{4, 0} +} + +// ManagementMode describes who is responsible for the management of the unit. +type Unit_ManagementMode int32 + +const ( + Unit_MANAGEMENT_MODE_UNSPECIFIED Unit_ManagementMode = 0 + // Unit's lifecycle is managed by the user. + Unit_MANAGEMENT_MODE_USER Unit_ManagementMode = 1 + // The system will decide when to deprovision and delete the unit. + // User still can deprovision or delete the unit manually. + Unit_MANAGEMENT_MODE_SYSTEM Unit_ManagementMode = 2 +) + +// Enum value maps for Unit_ManagementMode. +var ( + Unit_ManagementMode_name = map[int32]string{ + 0: "MANAGEMENT_MODE_UNSPECIFIED", + 1: "MANAGEMENT_MODE_USER", + 2: "MANAGEMENT_MODE_SYSTEM", + } + Unit_ManagementMode_value = map[string]int32{ + "MANAGEMENT_MODE_UNSPECIFIED": 0, + "MANAGEMENT_MODE_USER": 1, + "MANAGEMENT_MODE_SYSTEM": 2, + } +) + +func (x Unit_ManagementMode) Enum() *Unit_ManagementMode { + p := new(Unit_ManagementMode) + *p = x + return p +} + +func (x Unit_ManagementMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Unit_ManagementMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[1].Descriptor() +} + +func (Unit_ManagementMode) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[1] +} + +func (x Unit_ManagementMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Unit_ManagementMode.Descriptor instead. +func (Unit_ManagementMode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{4, 1} +} + +type Unit_SystemManagedState int32 + +const ( + Unit_SYSTEM_MANAGED_STATE_UNSPECIFIED Unit_SystemManagedState = 0 + // Unit has dependents attached. + Unit_SYSTEM_MANAGED_STATE_ACTIVE Unit_SystemManagedState = 1 + // Unit has no dependencies attached, but attachment is allowed. + Unit_SYSTEM_MANAGED_STATE_INACTIVE Unit_SystemManagedState = 2 + // Unit has no dependencies attached, and attachment is not allowed. + Unit_SYSTEM_MANAGED_STATE_DECOMMISSIONED Unit_SystemManagedState = 3 +) + +// Enum value maps for Unit_SystemManagedState. +var ( + Unit_SystemManagedState_name = map[int32]string{ + 0: "SYSTEM_MANAGED_STATE_UNSPECIFIED", + 1: "SYSTEM_MANAGED_STATE_ACTIVE", + 2: "SYSTEM_MANAGED_STATE_INACTIVE", + 3: "SYSTEM_MANAGED_STATE_DECOMMISSIONED", + } + Unit_SystemManagedState_value = map[string]int32{ + "SYSTEM_MANAGED_STATE_UNSPECIFIED": 0, + "SYSTEM_MANAGED_STATE_ACTIVE": 1, + "SYSTEM_MANAGED_STATE_INACTIVE": 2, + "SYSTEM_MANAGED_STATE_DECOMMISSIONED": 3, + } +) + +func (x Unit_SystemManagedState) Enum() *Unit_SystemManagedState { + p := new(Unit_SystemManagedState) + *p = x + return p +} + +func (x Unit_SystemManagedState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Unit_SystemManagedState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[2].Descriptor() +} + +func (Unit_SystemManagedState) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[2] +} + +func (x Unit_SystemManagedState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Unit_SystemManagedState.Descriptor instead. +func (Unit_SystemManagedState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{4, 2} +} + +// UnitOperationState describes the current state of the unit operation. +type UnitOperation_UnitOperationState int32 + +const ( + UnitOperation_UNIT_OPERATION_STATE_UNKNOWN UnitOperation_UnitOperationState = 0 + // Unit operation is accepted but not ready to run. + UnitOperation_UNIT_OPERATION_STATE_PENDING UnitOperation_UnitOperationState = 1 + // Unit operation is accepted and scheduled. + UnitOperation_UNIT_OPERATION_STATE_SCHEDULED UnitOperation_UnitOperationState = 2 + // Unit operation is running. + UnitOperation_UNIT_OPERATION_STATE_RUNNING UnitOperation_UnitOperationState = 4 + // Unit operation has completed successfully. + UnitOperation_UNIT_OPERATION_STATE_SUCCEEDED UnitOperation_UnitOperationState = 5 + // Unit operation has failed. + UnitOperation_UNIT_OPERATION_STATE_FAILED UnitOperation_UnitOperationState = 6 + // Unit operation was cancelled. + UnitOperation_UNIT_OPERATION_STATE_CANCELLED UnitOperation_UnitOperationState = 7 +) + +// Enum value maps for UnitOperation_UnitOperationState. +var ( + UnitOperation_UnitOperationState_name = map[int32]string{ + 0: "UNIT_OPERATION_STATE_UNKNOWN", + 1: "UNIT_OPERATION_STATE_PENDING", + 2: "UNIT_OPERATION_STATE_SCHEDULED", + 4: "UNIT_OPERATION_STATE_RUNNING", + 5: "UNIT_OPERATION_STATE_SUCCEEDED", + 6: "UNIT_OPERATION_STATE_FAILED", + 7: "UNIT_OPERATION_STATE_CANCELLED", + } + UnitOperation_UnitOperationState_value = map[string]int32{ + "UNIT_OPERATION_STATE_UNKNOWN": 0, + "UNIT_OPERATION_STATE_PENDING": 1, + "UNIT_OPERATION_STATE_SCHEDULED": 2, + "UNIT_OPERATION_STATE_RUNNING": 4, + "UNIT_OPERATION_STATE_SUCCEEDED": 5, + "UNIT_OPERATION_STATE_FAILED": 6, + "UNIT_OPERATION_STATE_CANCELLED": 7, + } +) + +func (x UnitOperation_UnitOperationState) Enum() *UnitOperation_UnitOperationState { + p := new(UnitOperation_UnitOperationState) + *p = x + return p +} + +func (x UnitOperation_UnitOperationState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (UnitOperation_UnitOperationState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[3].Descriptor() +} + +func (UnitOperation_UnitOperationState) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes[3] +} + +func (x UnitOperation_UnitOperationState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use UnitOperation_UnitOperationState.Descriptor instead. +func (UnitOperation_UnitOperationState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{6, 0} +} + +// Location information that the service is available in. +type Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Name of location. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *Location) Reset() { + *x = Location{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Location) ProtoMessage() {} + +func (x *Location) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Location.ProtoReflect.Descriptor instead. +func (*Location) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *Location) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Saas is a representation of a SaaS service managed by the Producer. +type Saas struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/saas/{saas}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. List of locations that the service is available in. Rollout + // refers to the list to generate a rollout plan. + Locations []*Location `protobuf:"bytes,4,rep,name=locations,proto3" json:"locations,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Saas) Reset() { + *x = Saas{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Saas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Saas) ProtoMessage() {} + +func (x *Saas) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Saas.ProtoReflect.Descriptor instead. +func (*Saas) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *Saas) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Saas) GetLocations() []*Location { + if x != nil { + return x.Locations + } + return nil +} + +func (x *Saas) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Saas) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Saas) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Saas) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Saas) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Saas) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Tenant represents the service producer side of an instance of the +// service created based on a request from a consumer. In a typical scenario a +// Tenant has a one-to-one mapping with a resource given out to a service +// consumer. +// +// Example: +// +// tenant: +// name: "projects/svc1/locations/loc/tenants/inst-068afff8" +// consumer_resource: "projects/gshoe/locations/loc/shoes/black-shoe" +type Tenant struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/tenants/{tenant}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Immutable. A reference to the consumer resource this SaaS Tenant + // is representing. + // + // The relationship with a consumer resource can be used by SaaS Runtime for + // retrieving consumer-defined settings and policies such as maintenance + // policies (using Unified Maintenance Policy API). + ConsumerResource string `protobuf:"bytes,2,opt,name=consumer_resource,json=consumerResource,proto3" json:"consumer_resource,omitempty"` + // Required. Immutable. A reference to the Saas that defines the product + // (managed service) that the producer wants to manage with SaaS Runtime. Part + // of the SaaS Runtime common data model. + Saas string `protobuf:"bytes,3,opt,name=saas,proto3" json:"saas,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Tenant) Reset() { + *x = Tenant{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Tenant) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Tenant) ProtoMessage() {} + +func (x *Tenant) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Tenant.ProtoReflect.Descriptor instead. +func (*Tenant) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *Tenant) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Tenant) GetConsumerResource() string { + if x != nil { + return x.ConsumerResource + } + return "" +} + +func (x *Tenant) GetSaas() string { + if x != nil { + return x.Saas + } + return "" +} + +func (x *Tenant) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Tenant) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Tenant) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Tenant) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Tenant) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Tenant) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Definition of a Unit. Units belonging to the same UnitKind are managed +// together; for example they follow the same release model (blueprints, +// versions etc.) and are typically rolled out together. +type UnitKind struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/unitKinds/{unitKind}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A reference to the Release object to use as default for creating + // new units of this UnitKind (optional). + // + // If not specified, a new unit must explicitly reference which release to use + // for its creation. + DefaultRelease string `protobuf:"bytes,2,opt,name=default_release,json=defaultRelease,proto3" json:"default_release,omitempty"` + // Optional. Immutable. List of other unit kinds that this release will depend + // on. Dependencies will be automatically provisioned if not found. + // Maximum 10. + Dependencies []*Dependency `protobuf:"bytes,4,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + // Optional. List of inputVariables for this release that will either be + // retrieved from a dependency’s outputVariables, or will be passed on to a + // dependency’s inputVariables. Maximum 100. + InputVariableMappings []*VariableMapping `protobuf:"bytes,5,rep,name=input_variable_mappings,json=inputVariableMappings,proto3" json:"input_variable_mappings,omitempty"` + // Optional. List of outputVariables for this unit kind will be passed to this + // unit's outputVariables. Maximum 100. + OutputVariableMappings []*VariableMapping `protobuf:"bytes,6,rep,name=output_variable_mappings,json=outputVariableMappings,proto3" json:"output_variable_mappings,omitempty"` + // Required. Immutable. A reference to the Saas that defines the product + // (managed service) that the producer wants to manage with SaaS Runtime. Part + // of the SaaS Runtime common data model. Immutable once set. + Saas string `protobuf:"bytes,8,opt,name=saas,proto3" json:"saas,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *UnitKind) Reset() { + *x = UnitKind{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitKind) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitKind) ProtoMessage() {} + +func (x *UnitKind) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 UnitKind.ProtoReflect.Descriptor instead. +func (*UnitKind) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{3} +} + +func (x *UnitKind) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UnitKind) GetDefaultRelease() string { + if x != nil { + return x.DefaultRelease + } + return "" +} + +func (x *UnitKind) GetDependencies() []*Dependency { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *UnitKind) GetInputVariableMappings() []*VariableMapping { + if x != nil { + return x.InputVariableMappings + } + return nil +} + +func (x *UnitKind) GetOutputVariableMappings() []*VariableMapping { + if x != nil { + return x.OutputVariableMappings + } + return nil +} + +func (x *UnitKind) GetSaas() string { + if x != nil { + return x.Saas + } + return "" +} + +func (x *UnitKind) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *UnitKind) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *UnitKind) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *UnitKind) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *UnitKind) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *UnitKind) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// A unit of deployment that has its lifecycle via a CRUD API using an actuation +// engine under the hood (e.g. based on Terraform, Helm or a custom +// implementation provided by a service producer). A building block of a SaaS +// Tenant. +type Unit struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/units/{unit}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Reference to the UnitKind this Unit belongs to. Immutable once + // set. + UnitKind string `protobuf:"bytes,2,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // Optional. Output only. The current Release object for this Unit. + Release string `protobuf:"bytes,13,opt,name=release,proto3" json:"release,omitempty"` + // Optional. Reference to the Saas Tenant resource this unit belongs to. This + // for example informs the maintenance policies to use for scheduling future + // updates on a unit. (optional and immutable once created) + Tenant string `protobuf:"bytes,4,opt,name=tenant,proto3" json:"tenant,omitempty"` + // Optional. Output only. List of concurrent UnitOperations that are operating + // on this Unit. + OngoingOperations []string `protobuf:"bytes,5,rep,name=ongoing_operations,json=ongoingOperations,proto3" json:"ongoing_operations,omitempty"` + // Optional. Output only. List of pending (wait to be executed) UnitOperations + // for this unit. + PendingOperations []string `protobuf:"bytes,6,rep,name=pending_operations,json=pendingOperations,proto3" json:"pending_operations,omitempty"` + // Optional. Output only. List of scheduled UnitOperations for this unit. + ScheduledOperations []string `protobuf:"bytes,24,rep,name=scheduled_operations,json=scheduledOperations,proto3" json:"scheduled_operations,omitempty"` + // Optional. Output only. List of Units that depend on this unit. Unit can + // only be deprovisioned if this list is empty. Maximum 1000. + Dependents []*UnitDependency `protobuf:"bytes,7,rep,name=dependents,proto3" json:"dependents,omitempty"` + // Optional. Output only. Set of dependencies for this unit. Maximum 10. + Dependencies []*UnitDependency `protobuf:"bytes,8,rep,name=dependencies,proto3" json:"dependencies,omitempty"` + // Optional. Output only. Indicates the current input variables deployed by + // the unit + InputVariables []*UnitVariable `protobuf:"bytes,9,rep,name=input_variables,json=inputVariables,proto3" json:"input_variables,omitempty"` + // Optional. Output only. Set of key/value pairs corresponding to output + // variables from execution of actuation templates. The variables are declared + // in actuation configs (e.g in helm chart or terraform) and the values are + // fetched and returned by the actuation engine upon completion of execution. + OutputVariables []*UnitVariable `protobuf:"bytes,10,rep,name=output_variables,json=outputVariables,proto3" json:"output_variables,omitempty"` + // Optional. Captures requested directives for performing future maintenance + // on the unit. This includes a request for the unit to skip maintenance for a + // period of time and remain pinned to its current release as well as controls + // for postponing maintenance scheduled in future. + Maintenance *Unit_MaintenanceSettings `protobuf:"bytes,14,opt,name=maintenance,proto3" json:"maintenance,omitempty"` + // Optional. Output only. Current lifecycle state of the resource (e.g. if + // it's being created or ready to use). + State Unit_UnitState `protobuf:"varint,16,opt,name=state,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit_UnitState" json:"state,omitempty"` + // Optional. Output only. A set of conditions which indicate the various + // conditions this resource can have. + Conditions []*UnitCondition `protobuf:"bytes,20,rep,name=conditions,proto3" json:"conditions,omitempty"` + // Optional. Immutable. Indicates whether the Unit life cycle is controlled + // by the user or by the system. + // Immutable once created. + ManagementMode Unit_ManagementMode `protobuf:"varint,22,opt,name=management_mode,json=managementMode,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit_ManagementMode" json:"management_mode,omitempty"` + // Optional. Output only. Indicates the system managed state of the unit. + SystemManagedState Unit_SystemManagedState `protobuf:"varint,25,opt,name=system_managed_state,json=systemManagedState,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit_SystemManagedState" json:"system_managed_state,omitempty"` + // Optional. Output only. If set, indicates the time when the system will + // start removing the unit. + SystemCleanupAt *timestamppb.Timestamp `protobuf:"bytes,26,opt,name=system_cleanup_at,json=systemCleanupAt,proto3" json:"system_cleanup_at,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Unit) Reset() { + *x = Unit{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Unit) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Unit) ProtoMessage() {} + +func (x *Unit) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Unit.ProtoReflect.Descriptor instead. +func (*Unit) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{4} +} + +func (x *Unit) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Unit) GetUnitKind() string { + if x != nil { + return x.UnitKind + } + return "" +} + +func (x *Unit) GetRelease() string { + if x != nil { + return x.Release + } + return "" +} + +func (x *Unit) GetTenant() string { + if x != nil { + return x.Tenant + } + return "" +} + +func (x *Unit) GetOngoingOperations() []string { + if x != nil { + return x.OngoingOperations + } + return nil +} + +func (x *Unit) GetPendingOperations() []string { + if x != nil { + return x.PendingOperations + } + return nil +} + +func (x *Unit) GetScheduledOperations() []string { + if x != nil { + return x.ScheduledOperations + } + return nil +} + +func (x *Unit) GetDependents() []*UnitDependency { + if x != nil { + return x.Dependents + } + return nil +} + +func (x *Unit) GetDependencies() []*UnitDependency { + if x != nil { + return x.Dependencies + } + return nil +} + +func (x *Unit) GetInputVariables() []*UnitVariable { + if x != nil { + return x.InputVariables + } + return nil +} + +func (x *Unit) GetOutputVariables() []*UnitVariable { + if x != nil { + return x.OutputVariables + } + return nil +} + +func (x *Unit) GetMaintenance() *Unit_MaintenanceSettings { + if x != nil { + return x.Maintenance + } + return nil +} + +func (x *Unit) GetState() Unit_UnitState { + if x != nil { + return x.State + } + return Unit_UNIT_STATE_UNSPECIFIED +} + +func (x *Unit) GetConditions() []*UnitCondition { + if x != nil { + return x.Conditions + } + return nil +} + +func (x *Unit) GetManagementMode() Unit_ManagementMode { + if x != nil { + return x.ManagementMode + } + return Unit_MANAGEMENT_MODE_UNSPECIFIED +} + +func (x *Unit) GetSystemManagedState() Unit_SystemManagedState { + if x != nil { + return x.SystemManagedState + } + return Unit_SYSTEM_MANAGED_STATE_UNSPECIFIED +} + +func (x *Unit) GetSystemCleanupAt() *timestamppb.Timestamp { + if x != nil { + return x.SystemCleanupAt + } + return nil +} + +func (x *Unit) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Unit) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Unit) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Unit) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Unit) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Unit) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Set of dependencies for this unit. Maximum 10. +type UnitDependency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Alias for the name of the dependency. + Alias string `protobuf:"bytes,1,opt,name=alias,proto3" json:"alias,omitempty"` + // Output only. A reference to the Unit object. + Unit string `protobuf:"bytes,2,opt,name=unit,proto3" json:"unit,omitempty"` +} + +func (x *UnitDependency) Reset() { + *x = UnitDependency{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitDependency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitDependency) ProtoMessage() {} + +func (x *UnitDependency) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 UnitDependency.ProtoReflect.Descriptor instead. +func (*UnitDependency) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{5} +} + +func (x *UnitDependency) GetAlias() string { + if x != nil { + return x.Alias + } + return "" +} + +func (x *UnitDependency) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +// UnitOperation encapsulates the intent of changing/interacting with the +// service component represented by the specific Unit. Multiple UnitOperations +// can be created (requested) and scheduled in the future, however only one will +// be allowed to execute at a time (that can change in the future for +// non-mutating operations). +// +// UnitOperations allow different actors interacting with the same +// unit to focus only on the change they have requested. +// +// This is a base object that contains the common fields in all unit operations. +// Next: 19 +type UnitOperation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to UnitOperationType: + // + // *UnitOperation_Provision + // *UnitOperation_Upgrade + // *UnitOperation_Deprovision + UnitOperationType isUnitOperation_UnitOperationType `protobuf_oneof:"unit_operation_type"` + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/unitOperations/{unitOperation}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Immutable. The Unit a given UnitOperation will act upon. + Unit string `protobuf:"bytes,2,opt,name=unit,proto3" json:"unit,omitempty"` + // Optional. Reference to parent resource: UnitOperation. If an operation + // needs to create other operations as part of its workflow, each of the child + // operations should have this field set to the parent. This can be used for + // tracing. (Optional) + ParentUnitOperation string `protobuf:"bytes,3,opt,name=parent_unit_operation,json=parentUnitOperation,proto3" json:"parent_unit_operation,omitempty"` + // Optional. Specifies which rollout created this Unit Operation. This cannot + // be modified and is used for filtering purposes only. If a dependent unit + // and unit operation are created as part of another unit operation, they will + // use the same rolloutId. + Rollout string `protobuf:"bytes,4,opt,name=rollout,proto3" json:"rollout,omitempty"` + // Optional. When true, attempt to cancel the operation. Cancellation may fail + // if the operation is already executing. (Optional) + Cancel bool `protobuf:"varint,5,opt,name=cancel,proto3" json:"cancel,omitempty"` + // Optional. Output only. UnitOperationState describes the current state of + // the unit operation. + State UnitOperation_UnitOperationState `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation_UnitOperationState" json:"state,omitempty"` + // Optional. Output only. A set of conditions which indicate the various + // conditions this resource can have. + Conditions []*UnitOperationCondition `protobuf:"bytes,7,rep,name=conditions,proto3" json:"conditions,omitempty"` + // Optional. When to schedule this operation. + Schedule *Schedule `protobuf:"bytes,12,opt,name=schedule,proto3" json:"schedule,omitempty"` + // Optional. Output only. The engine state for on-going + // deployment engine operation(s). + // This field is opaque for external usage. + EngineState string `protobuf:"bytes,14,opt,name=engine_state,json=engineState,proto3" json:"engine_state,omitempty"` + // Optional. Output only. UnitOperationErrorCategory describe the error + // category. + ErrorCategory UnitOperationErrorCategory `protobuf:"varint,15,opt,name=error_category,json=errorCategory,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationErrorCategory" json:"error_category,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *UnitOperation) Reset() { + *x = UnitOperation{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UnitOperation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnitOperation) ProtoMessage() {} + +func (x *UnitOperation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 UnitOperation.ProtoReflect.Descriptor instead. +func (*UnitOperation) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{6} +} + +func (m *UnitOperation) GetUnitOperationType() isUnitOperation_UnitOperationType { + if m != nil { + return m.UnitOperationType + } + return nil +} + +func (x *UnitOperation) GetProvision() *Provision { + if x, ok := x.GetUnitOperationType().(*UnitOperation_Provision); ok { + return x.Provision + } + return nil +} + +func (x *UnitOperation) GetUpgrade() *Upgrade { + if x, ok := x.GetUnitOperationType().(*UnitOperation_Upgrade); ok { + return x.Upgrade + } + return nil +} + +func (x *UnitOperation) GetDeprovision() *Deprovision { + if x, ok := x.GetUnitOperationType().(*UnitOperation_Deprovision); ok { + return x.Deprovision + } + return nil +} + +func (x *UnitOperation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UnitOperation) GetUnit() string { + if x != nil { + return x.Unit + } + return "" +} + +func (x *UnitOperation) GetParentUnitOperation() string { + if x != nil { + return x.ParentUnitOperation + } + return "" +} + +func (x *UnitOperation) GetRollout() string { + if x != nil { + return x.Rollout + } + return "" +} + +func (x *UnitOperation) GetCancel() bool { + if x != nil { + return x.Cancel + } + return false +} + +func (x *UnitOperation) GetState() UnitOperation_UnitOperationState { + if x != nil { + return x.State + } + return UnitOperation_UNIT_OPERATION_STATE_UNKNOWN +} + +func (x *UnitOperation) GetConditions() []*UnitOperationCondition { + if x != nil { + return x.Conditions + } + return nil +} + +func (x *UnitOperation) GetSchedule() *Schedule { + if x != nil { + return x.Schedule + } + return nil +} + +func (x *UnitOperation) GetEngineState() string { + if x != nil { + return x.EngineState + } + return "" +} + +func (x *UnitOperation) GetErrorCategory() UnitOperationErrorCategory { + if x != nil { + return x.ErrorCategory + } + return UnitOperationErrorCategory_UNIT_OPERATION_ERROR_CATEGORY_UNSPECIFIED +} + +func (x *UnitOperation) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *UnitOperation) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *UnitOperation) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *UnitOperation) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *UnitOperation) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *UnitOperation) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +type isUnitOperation_UnitOperationType interface { + isUnitOperation_UnitOperationType() +} + +type UnitOperation_Provision struct { + Provision *Provision `protobuf:"bytes,8,opt,name=provision,proto3,oneof"` +} + +type UnitOperation_Upgrade struct { + Upgrade *Upgrade `protobuf:"bytes,9,opt,name=upgrade,proto3,oneof"` +} + +type UnitOperation_Deprovision struct { + Deprovision *Deprovision `protobuf:"bytes,10,opt,name=deprovision,proto3,oneof"` +} + +func (*UnitOperation_Provision) isUnitOperation_UnitOperationType() {} + +func (*UnitOperation_Upgrade) isUnitOperation_UnitOperationType() {} + +func (*UnitOperation_Deprovision) isUnitOperation_UnitOperationType() {} + +// Provision is the unit operation that provision the underlying resources +// represented by a Unit. Can only execute if the Unit is not currently +// provisioned. +type Provision struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Reference to the Release object to use for the Unit. (optional). + Release string `protobuf:"bytes,1,opt,name=release,proto3" json:"release,omitempty"` + // Optional. Set of input variables. Maximum 100. (optional) + InputVariables []*UnitVariable `protobuf:"bytes,3,rep,name=input_variables,json=inputVariables,proto3" json:"input_variables,omitempty"` +} + +func (x *Provision) Reset() { + *x = Provision{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Provision) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Provision) ProtoMessage() {} + +func (x *Provision) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Provision.ProtoReflect.Descriptor instead. +func (*Provision) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{7} +} + +func (x *Provision) GetRelease() string { + if x != nil { + return x.Release + } + return "" +} + +func (x *Provision) GetInputVariables() []*UnitVariable { + if x != nil { + return x.InputVariables + } + return nil +} + +// Deprovision is the unit operation that deprovision the underlying +// resources represented by a Unit. Can only execute if the Unit is currently +// provisioned. +type Deprovision struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *Deprovision) Reset() { + *x = Deprovision{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Deprovision) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Deprovision) ProtoMessage() {} + +func (x *Deprovision) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Deprovision.ProtoReflect.Descriptor instead. +func (*Deprovision) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{8} +} + +// Upgrade is the unit operation that upgrades a provisioned unit, which may +// also include the underlying resources represented by a Unit. Can only execute +// if the Unit is currently provisioned. +type Upgrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Reference to the Release object to use for the Unit. (optional). + Release string `protobuf:"bytes,1,opt,name=release,proto3" json:"release,omitempty"` + // Optional. Set of input variables. Maximum 100. (optional) + InputVariables []*UnitVariable `protobuf:"bytes,2,rep,name=input_variables,json=inputVariables,proto3" json:"input_variables,omitempty"` +} + +func (x *Upgrade) Reset() { + *x = Upgrade{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Upgrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Upgrade) ProtoMessage() {} + +func (x *Upgrade) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Upgrade.ProtoReflect.Descriptor instead. +func (*Upgrade) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{9} +} + +func (x *Upgrade) GetRelease() string { + if x != nil { + return x.Release + } + return "" +} + +func (x *Upgrade) GetInputVariables() []*UnitVariable { + if x != nil { + return x.InputVariables + } + return nil +} + +// A time specification to schedule the maintenance. +type Schedule struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Start of operation. If not set, will be set to the start of the + // next window. (optional) + StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` +} + +func (x *Schedule) Reset() { + *x = Schedule{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Schedule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Schedule) ProtoMessage() {} + +func (x *Schedule) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Schedule.ProtoReflect.Descriptor instead. +func (*Schedule) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{10} +} + +func (x *Schedule) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +// A new version to be propagated and deployed to units. This includes pointers +// to packaged blueprints for actuation (e.g Helm or Terraform configuration +// packages) via artifact registry. +type Release struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/releases/{release}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Immutable. Reference to the UnitKind this Release corresponds to + // (required and immutable once created). + UnitKind string `protobuf:"bytes,2,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // Optional. Blueprints are OCI Images that contain all of the artifacts + // needed to provision a unit. + Blueprint *Blueprint `protobuf:"bytes,3,opt,name=blueprint,proto3" json:"blueprint,omitempty"` + // Optional. Set of requirements to be fulfilled on the Unit when using this + // Release. + ReleaseRequirements *Release_ReleaseRequirements `protobuf:"bytes,4,opt,name=release_requirements,json=releaseRequirements,proto3" json:"release_requirements,omitempty"` + // Optional. Output only. List of input variables declared on the blueprint + // and can be present with their values on the unit spec + InputVariables []*UnitVariable `protobuf:"bytes,5,rep,name=input_variables,json=inputVariables,proto3" json:"input_variables,omitempty"` + // Optional. Output only. List of output variables declared on the blueprint + // and can be present with their values on the unit status + OutputVariables []*UnitVariable `protobuf:"bytes,6,rep,name=output_variables,json=outputVariables,proto3" json:"output_variables,omitempty"` + // Optional. Mapping of input variables to default values. Maximum 100 + InputVariableDefaults []*UnitVariable `protobuf:"bytes,7,rep,name=input_variable_defaults,json=inputVariableDefaults,proto3" json:"input_variable_defaults,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Release) Reset() { + *x = Release{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Release) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Release) ProtoMessage() {} + +func (x *Release) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Release.ProtoReflect.Descriptor instead. +func (*Release) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{11} +} + +func (x *Release) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Release) GetUnitKind() string { + if x != nil { + return x.UnitKind + } + return "" +} + +func (x *Release) GetBlueprint() *Blueprint { + if x != nil { + return x.Blueprint + } + return nil +} + +func (x *Release) GetReleaseRequirements() *Release_ReleaseRequirements { + if x != nil { + return x.ReleaseRequirements + } + return nil +} + +func (x *Release) GetInputVariables() []*UnitVariable { + if x != nil { + return x.InputVariables + } + return nil +} + +func (x *Release) GetOutputVariables() []*UnitVariable { + if x != nil { + return x.OutputVariables + } + return nil +} + +func (x *Release) GetInputVariableDefaults() []*UnitVariable { + if x != nil { + return x.InputVariableDefaults + } + return nil +} + +func (x *Release) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Release) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Release) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Release) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Release) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Release) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Mapping of input variables to their respective output variable for +// depedenencies +type VariableMapping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to MappingType: + // + // *VariableMapping_From + // *VariableMapping_To + MappingType isVariableMapping_MappingType `protobuf_oneof:"mapping_type"` + // Required. name of the variable + Variable string `protobuf:"bytes,1,opt,name=variable,proto3" json:"variable,omitempty"` +} + +func (x *VariableMapping) Reset() { + *x = VariableMapping{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VariableMapping) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VariableMapping) ProtoMessage() {} + +func (x *VariableMapping) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 VariableMapping.ProtoReflect.Descriptor instead. +func (*VariableMapping) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{12} +} + +func (m *VariableMapping) GetMappingType() isVariableMapping_MappingType { + if m != nil { + return m.MappingType + } + return nil +} + +func (x *VariableMapping) GetFrom() *FromMapping { + if x, ok := x.GetMappingType().(*VariableMapping_From); ok { + return x.From + } + return nil +} + +func (x *VariableMapping) GetTo() *ToMapping { + if x, ok := x.GetMappingType().(*VariableMapping_To); ok { + return x.To + } + return nil +} + +func (x *VariableMapping) GetVariable() string { + if x != nil { + return x.Variable + } + return "" +} + +type isVariableMapping_MappingType interface { + isVariableMapping_MappingType() +} + +type VariableMapping_From struct { + // Optional. Output variables which will get their values from dependencies + From *FromMapping `protobuf:"bytes,2,opt,name=from,proto3,oneof"` +} + +type VariableMapping_To struct { + // Optional. Input variables whose values will be passed on to dependencies. + To *ToMapping `protobuf:"bytes,3,opt,name=to,proto3,oneof"` +} + +func (*VariableMapping_From) isVariableMapping_MappingType() {} + +func (*VariableMapping_To) isVariableMapping_MappingType() {} + +// Output variables whose values will be passed on to dependencies +type FromMapping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Alias of the dependency that the outputVariable will pass its + // value to + Dependency string `protobuf:"bytes,1,opt,name=dependency,proto3" json:"dependency,omitempty"` + // Required. Name of the outputVariable on the dependency + OutputVariable string `protobuf:"bytes,2,opt,name=output_variable,json=outputVariable,proto3" json:"output_variable,omitempty"` +} + +func (x *FromMapping) Reset() { + *x = FromMapping{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FromMapping) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FromMapping) ProtoMessage() {} + +func (x *FromMapping) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 FromMapping.ProtoReflect.Descriptor instead. +func (*FromMapping) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{13} +} + +func (x *FromMapping) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *FromMapping) GetOutputVariable() string { + if x != nil { + return x.OutputVariable + } + return "" +} + +// Input variables whose values will be passed on to dependencies +type ToMapping struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Alias of the dependency that the inputVariable will pass its + // value to + Dependency string `protobuf:"bytes,1,opt,name=dependency,proto3" json:"dependency,omitempty"` + // Required. Name of the inputVariable on the dependency + InputVariable string `protobuf:"bytes,2,opt,name=input_variable,json=inputVariable,proto3" json:"input_variable,omitempty"` + // Optional. Tells SaaS Runtime if this mapping should be used during lookup + // or not + IgnoreForLookup bool `protobuf:"varint,3,opt,name=ignore_for_lookup,json=ignoreForLookup,proto3" json:"ignore_for_lookup,omitempty"` +} + +func (x *ToMapping) Reset() { + *x = ToMapping{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ToMapping) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ToMapping) ProtoMessage() {} + +func (x *ToMapping) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 ToMapping.ProtoReflect.Descriptor instead. +func (*ToMapping) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{14} +} + +func (x *ToMapping) GetDependency() string { + if x != nil { + return x.Dependency + } + return "" +} + +func (x *ToMapping) GetInputVariable() string { + if x != nil { + return x.InputVariable + } + return "" +} + +func (x *ToMapping) GetIgnoreForLookup() bool { + if x != nil { + return x.IgnoreForLookup + } + return false +} + +// Dependency represent a single dependency with another unit kind by alias. +type Dependency struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Immutable. The unit kind of the dependency. + UnitKind string `protobuf:"bytes,1,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // Required. An alias for the dependency. Used for input variable mapping. + Alias string `protobuf:"bytes,2,opt,name=alias,proto3" json:"alias,omitempty"` +} + +func (x *Dependency) Reset() { + *x = Dependency{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Dependency) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Dependency) ProtoMessage() {} + +func (x *Dependency) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Dependency.ProtoReflect.Descriptor instead. +func (*Dependency) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{15} +} + +func (x *Dependency) GetUnitKind() string { + if x != nil { + return x.UnitKind + } + return "" +} + +func (x *Dependency) GetAlias() string { + if x != nil { + return x.Alias + } + return "" +} + +// Captures requested directives for performing future maintenance on the +// unit. This includes a request for the unit to skip maintenance for a period +// of time and remain pinned to its current release as well as controls for +// postponing maintenance scheduled in future. +type Unit_MaintenanceSettings struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. If present, it fixes the release on the unit until the given + // time; i.e. changes to the release field will be rejected. Rollouts should + // and will also respect this by not requesting an upgrade in the first + // place. + PinnedUntilTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=pinned_until_time,json=pinnedUntilTime,proto3" json:"pinned_until_time,omitempty"` +} + +func (x *Unit_MaintenanceSettings) Reset() { + *x = Unit_MaintenanceSettings{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Unit_MaintenanceSettings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Unit_MaintenanceSettings) ProtoMessage() {} + +func (x *Unit_MaintenanceSettings) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Unit_MaintenanceSettings.ProtoReflect.Descriptor instead. +func (*Unit_MaintenanceSettings) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *Unit_MaintenanceSettings) GetPinnedUntilTime() *timestamppb.Timestamp { + if x != nil { + return x.PinnedUntilTime + } + return nil +} + +// Set of requirements to be fulfilled on the Unit when using this Release. +type Release_ReleaseRequirements struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. A list of releases from which a unit can be upgraded to this + // one (optional). If left empty no constraints will be applied. When + // provided, unit upgrade requests to this release will check and enforce + // this constraint. + UpgradeableFromReleases []string `protobuf:"bytes,1,rep,name=upgradeable_from_releases,json=upgradeableFromReleases,proto3" json:"upgradeable_from_releases,omitempty"` +} + +func (x *Release_ReleaseRequirements) Reset() { + *x = Release_ReleaseRequirements{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Release_ReleaseRequirements) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Release_ReleaseRequirements) ProtoMessage() {} + +func (x *Release_ReleaseRequirements) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_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 Release_ReleaseRequirements.ProtoReflect.Descriptor instead. +func (*Release_ReleaseRequirements) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP(), []int{11, 0} +} + +func (x *Release_ReleaseRequirements) GetUpgradeableFromReleases() []string { + if x != nil { + return x.UpgradeableFromReleases + } + return nil +} + +var File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDesc = []byte{ + 0x0a, 0x4d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 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, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 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, 0x3e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 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, 0x23, 0x0a, 0x08, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0xfa, 0x05, 0x0a, 0x04, 0x53, 0x61, 0x61, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x5e, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x70, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x53, 0x61, 0x61, 0x73, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0xd9, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, + 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, + 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x3a, 0x69, 0xea, 0x41, 0x66, 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x61, 0x61, 0x73, 0x12, 0x33, 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, 0x73, 0x61, 0x61, 0x73, 0x2f, 0x7b, 0x73, 0x61, 0x61, + 0x73, 0x7d, 0x2a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x32, 0x04, 0x73, 0x61, 0x61, 0x73, 0x22, 0xa5, + 0x06, 0x0a, 0x06, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x25, + 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x61, 0x61, 0x73, 0x52, 0x04, 0x73, 0x61, 0x61, 0x73, 0x12, 0x63, 0x0a, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x72, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0xd9, 0x4f, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, + 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x41, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbf, 0x50, + 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0xc0, 0x50, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, + 0x75, 0xea, 0x41, 0x72, 0x0a, 0x25, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x38, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x7d, 0x2a, 0x07, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x32, 0x06, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0xc9, 0x09, 0x0a, 0x08, 0x55, 0x6e, 0x69, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x0f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, + 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, + 0x41, 0x05, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, + 0x12, 0x7f, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x73, 0x12, 0x81, 0x01, 0x0a, 0x18, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x25, 0x0a, 0x23, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, + 0x61, 0x61, 0x73, 0x52, 0x04, 0x73, 0x61, 0x61, 0x73, 0x12, 0x65, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, + 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x74, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0xd9, 0x4f, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, + 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, + 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, + 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, + 0x01, 0x3a, 0x7f, 0xea, 0x41, 0x7c, 0x0a, 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x3c, 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, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x73, 0x2f, 0x7b, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x7d, 0x2a, 0x09, 0x75, + 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x32, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, + 0x6e, 0x64, 0x22, 0xcb, 0x16, 0x0a, 0x04, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x29, 0x0a, + 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, + 0x6e, 0x64, 0x12, 0x4b, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x28, 0x0a, 0x26, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, + 0x45, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x66, 0x0a, 0x12, 0x6f, 0x6e, 0x67, 0x6f, 0x69, 0x6e, + 0x67, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x37, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x6f, 0x6e, 0x67, + 0x6f, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x66, + 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xe0, 0x41, 0x01, 0xe0, + 0x41, 0x03, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6a, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x18, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x37, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2e, 0x0a, + 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x69, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x6d, 0x0a, + 0x0c, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x44, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0c, + 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x69, 0x65, 0x73, 0x12, 0x70, 0x0a, 0x0f, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x72, + 0x0a, 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, + 0x03, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x12, 0x72, 0x0a, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, + 0x2e, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x69, 0x6e, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x2e, 0x55, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x55, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0xe0, + 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x77, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, + 0x6e, 0x69, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x14, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, + 0x69, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x4e, 0x0a, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x63, 0x6c, 0x65, 0x61, + 0x6e, 0x75, 0x70, 0x5f, 0x61, 0x74, 0x18, 0x1a, 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, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, + 0x52, 0x0f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x41, + 0x74, 0x12, 0x61, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x70, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, + 0x6e, 0x69, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0xd9, 0x4f, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, + 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, + 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, + 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x62, 0x0a, 0x13, 0x4d, 0x61, 0x69, 0x6e, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x4b, 0x0a, + 0x11, 0x70, 0x69, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 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, 0x01, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x6e, 0x65, + 0x64, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xc8, 0x01, 0x0a, 0x09, 0x55, 0x6e, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1e, 0x0a, 0x1a, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, + 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, + 0x4e, 0x47, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, + 0x49, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, + 0x22, 0x67, 0x0a, 0x0e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, + 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, + 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x01, 0x12, 0x1a, 0x0a, + 0x16, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x10, 0x02, 0x22, 0xa7, 0x01, 0x0a, 0x12, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x24, 0x0a, 0x20, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, + 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, + 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x59, 0x53, 0x54, 0x45, + 0x4d, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x27, 0x0a, 0x23, 0x53, 0x59, + 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x4d, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x45, + 0x44, 0x10, 0x03, 0x3a, 0x6b, 0xea, 0x41, 0x68, 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 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, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x2f, 0x7b, 0x75, 0x6e, + 0x69, 0x74, 0x7d, 0x2a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x32, 0x04, 0x75, 0x6e, 0x69, 0x74, + 0x22, 0x6c, 0x0a, 0x0e, 0x55, 0x6e, 0x69, 0x74, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, + 0x63, 0x79, 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3f, 0x0a, + 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x22, 0xb2, + 0x10, 0x0a, 0x0d, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x61, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x07, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x67, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x65, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x68, 0x0a, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x48, 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0x71, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, + 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x71, 0x0a, 0x0a, 0x63, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x49, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5c, 0x0a, + 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x29, 0x0a, 0x0c, 0x65, + 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x65, 0x6e, 0x67, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x7c, 0x0a, 0x0e, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x42, 0x06, 0xe0, + 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x12, 0x6a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, + 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x79, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0xd9, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, + 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x87, 0x02, 0x0a, 0x12, 0x55, 0x6e, 0x69, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, + 0x1c, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x20, 0x0a, 0x1c, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, + 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, + 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, + 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, + 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1f, 0x0a, 0x1b, 0x55, + 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x22, 0x0a, 0x1e, + 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x07, + 0x3a, 0x99, 0x01, 0xea, 0x41, 0x95, 0x01, 0x0a, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 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, 0x75, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x75, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2a, 0x0e, 0x75, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x0d, 0x75, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, + 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x22, 0xc4, 0x01, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x6d, 0x0a, 0x0f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x0d, 0x0a, 0x0b, 0x44, 0x65, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc2, 0x01, 0x0a, 0x07, 0x55, 0x70, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, + 0x6d, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x22, 0x4a, + 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd7, 0x0b, 0x0a, 0x07, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x4f, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, + 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x5f, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x12, 0x86, 0x01, 0x0a, 0x14, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x70, 0x0a, 0x0f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x72, 0x0a, 0x10, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, + 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x12, 0x7c, 0x0a, 0x17, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x56, 0x61, + 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x64, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x12, 0x73, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0xd9, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, + 0x08, 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x81, 0x01, 0x0a, 0x13, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x6a, 0x0a, 0x19, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x52, 0x17, 0x75, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x61, 0x62, 0x6c, + 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x7a, 0xea, 0x41, 0x77, 0x0a, 0x26, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x3a, 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, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x7d, 0x2a, 0x08, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x32, 0x07, 0x72, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x22, 0xf2, 0x01, 0x0a, 0x0f, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, + 0x65, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x59, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x04, 0x66, + 0x72, 0x6f, 0x6d, 0x12, 0x53, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x48, 0x00, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1f, 0x0a, 0x08, 0x76, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x6d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x60, 0x0a, 0x0b, 0x46, 0x72, 0x6f, + 0x6d, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2c, 0x0a, + 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x09, + 0x54, 0x6f, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x23, 0x0a, 0x0a, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2a, + 0x0a, 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x70, + 0x75, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2f, 0x0a, 0x11, 0x69, 0x67, + 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x6c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x69, 0x67, 0x6e, 0x6f, + 0x72, 0x65, 0x46, 0x6f, 0x72, 0x4c, 0x6f, 0x6f, 0x6b, 0x75, 0x70, 0x22, 0x78, 0x0a, 0x0a, 0x44, + 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x4f, 0x0a, 0x09, 0x75, 0x6e, 0x69, + 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, + 0x02, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x61, 0x6c, + 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x61, 0x6c, 0x69, 0x61, 0x73, 0x42, 0xd9, 0x02, 0x0a, 0x35, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x1d, 0x53, 0x61, 0x61, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0x3b, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, + 0x62, 0xaa, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x61, + 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, + 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, + 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x35, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescOnce sync.Once + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescData = file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDesc +) + +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescGZIP() []byte { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescData) + }) + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDescData +} + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 30) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_goTypes = []any{ + (Unit_UnitState)(0), // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.UnitState + (Unit_ManagementMode)(0), // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.ManagementMode + (Unit_SystemManagedState)(0), // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.SystemManagedState + (UnitOperation_UnitOperationState)(0), // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.UnitOperationState + (*Location)(nil), // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.Location + (*Saas)(nil), // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + (*Tenant)(nil), // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + (*UnitKind)(nil), // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + (*Unit)(nil), // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + (*UnitDependency)(nil), // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitDependency + (*UnitOperation)(nil), // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + (*Provision)(nil), // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.Provision + (*Deprovision)(nil), // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.Deprovision + (*Upgrade)(nil), // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.Upgrade + (*Schedule)(nil), // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.Schedule + (*Release)(nil), // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + (*VariableMapping)(nil), // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.VariableMapping + (*FromMapping)(nil), // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.FromMapping + (*ToMapping)(nil), // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.ToMapping + (*Dependency)(nil), // 19: google.cloud.saasplatform.saasservicemgmt.v1beta1.Dependency + nil, // 20: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.LabelsEntry + nil, // 21: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.AnnotationsEntry + nil, // 22: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.LabelsEntry + nil, // 23: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.AnnotationsEntry + nil, // 24: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.LabelsEntry + nil, // 25: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.AnnotationsEntry + (*Unit_MaintenanceSettings)(nil), // 26: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.MaintenanceSettings + nil, // 27: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.LabelsEntry + nil, // 28: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.AnnotationsEntry + nil, // 29: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.LabelsEntry + nil, // 30: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.AnnotationsEntry + (*Release_ReleaseRequirements)(nil), // 31: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.ReleaseRequirements + nil, // 32: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.LabelsEntry + nil, // 33: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.AnnotationsEntry + (*timestamppb.Timestamp)(nil), // 34: google.protobuf.Timestamp + (*UnitVariable)(nil), // 35: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + (*UnitCondition)(nil), // 36: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition + (*UnitOperationCondition)(nil), // 37: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition + (UnitOperationErrorCategory)(0), // 38: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationErrorCategory + (*Blueprint)(nil), // 39: google.cloud.saasplatform.saasservicemgmt.v1beta1.Blueprint +} +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_depIdxs = []int32{ + 4, // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.locations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Location + 20, // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.LabelsEntry + 21, // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.AnnotationsEntry + 34, // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.create_time:type_name -> google.protobuf.Timestamp + 34, // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas.update_time:type_name -> google.protobuf.Timestamp + 22, // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.LabelsEntry + 23, // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.AnnotationsEntry + 34, // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.create_time:type_name -> google.protobuf.Timestamp + 34, // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant.update_time:type_name -> google.protobuf.Timestamp + 19, // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.dependencies:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Dependency + 16, // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.input_variable_mappings:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.VariableMapping + 16, // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.output_variable_mappings:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.VariableMapping + 24, // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.LabelsEntry + 25, // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.AnnotationsEntry + 34, // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.create_time:type_name -> google.protobuf.Timestamp + 34, // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind.update_time:type_name -> google.protobuf.Timestamp + 9, // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.dependents:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitDependency + 9, // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.dependencies:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitDependency + 35, // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.input_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 35, // 19: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.output_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 26, // 20: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.maintenance:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.MaintenanceSettings + 0, // 21: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.state:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.UnitState + 36, // 22: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.conditions:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitCondition + 1, // 23: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.management_mode:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.ManagementMode + 2, // 24: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.system_managed_state:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.SystemManagedState + 34, // 25: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.system_cleanup_at:type_name -> google.protobuf.Timestamp + 27, // 26: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.LabelsEntry + 28, // 27: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.AnnotationsEntry + 34, // 28: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.create_time:type_name -> google.protobuf.Timestamp + 34, // 29: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.update_time:type_name -> google.protobuf.Timestamp + 11, // 30: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.provision:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Provision + 13, // 31: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.upgrade:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Upgrade + 12, // 32: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.deprovision:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Deprovision + 3, // 33: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.state:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.UnitOperationState + 37, // 34: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.conditions:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationCondition + 14, // 35: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.schedule:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Schedule + 38, // 36: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.error_category:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperationErrorCategory + 29, // 37: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.LabelsEntry + 30, // 38: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.AnnotationsEntry + 34, // 39: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.create_time:type_name -> google.protobuf.Timestamp + 34, // 40: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation.update_time:type_name -> google.protobuf.Timestamp + 35, // 41: google.cloud.saasplatform.saasservicemgmt.v1beta1.Provision.input_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 35, // 42: google.cloud.saasplatform.saasservicemgmt.v1beta1.Upgrade.input_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 34, // 43: google.cloud.saasplatform.saasservicemgmt.v1beta1.Schedule.start_time:type_name -> google.protobuf.Timestamp + 39, // 44: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.blueprint:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Blueprint + 31, // 45: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.release_requirements:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.ReleaseRequirements + 35, // 46: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.input_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 35, // 47: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.output_variables:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 35, // 48: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.input_variable_defaults:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitVariable + 32, // 49: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.LabelsEntry + 33, // 50: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.AnnotationsEntry + 34, // 51: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.create_time:type_name -> google.protobuf.Timestamp + 34, // 52: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release.update_time:type_name -> google.protobuf.Timestamp + 17, // 53: google.cloud.saasplatform.saasservicemgmt.v1beta1.VariableMapping.from:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.FromMapping + 18, // 54: google.cloud.saasplatform.saasservicemgmt.v1beta1.VariableMapping.to:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ToMapping + 34, // 55: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit.MaintenanceSettings.pinned_until_time:type_name -> google.protobuf.Timestamp + 56, // [56:56] is the sub-list for method output_type + 56, // [56:56] is the sub-list for method input_type + 56, // [56:56] is the sub-list for extension type_name + 56, // [56:56] is the sub-list for extension extendee + 0, // [0:56] is the sub-list for field type_name +} + +func init() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_init() +} +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_init() { + if File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto != nil { + return + } + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_init() + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[6].OneofWrappers = []any{ + (*UnitOperation_Provision)(nil), + (*UnitOperation_Upgrade)(nil), + (*UnitOperation_Deprovision)(nil), + } + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes[12].OneofWrappers = []any{ + (*VariableMapping_From)(nil), + (*VariableMapping_To)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDesc, + NumEnums: 4, + NumMessages: 30, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_depIdxs, + EnumInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_enumTypes, + MessageInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_msgTypes, + }.Build() + File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto = out.File + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_rawDesc = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_goTypes = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_depIdxs = nil +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service.pb.go new file mode 100644 index 000000000000..fb0fd80d6660 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service.pb.go @@ -0,0 +1,4045 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/deployments_service.proto + +package saasservicemgmtpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The request structure for the ListSaas method. +type ListSaasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the saas. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of saas to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListSaasRequest) Reset() { + *x = ListSaasRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSaasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSaasRequest) ProtoMessage() {} + +func (x *ListSaasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListSaasRequest.ProtoReflect.Descriptor instead. +func (*ListSaasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ListSaasRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSaasRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSaasRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSaasRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListSaasRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListSaas method. +type ListSaasResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting saas. + Saas []*Saas `protobuf:"bytes,10509,rep,name=saas,proto3" json:"saas,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListSaas call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListSaasResponse) Reset() { + *x = ListSaasResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSaasResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSaasResponse) ProtoMessage() {} + +func (x *ListSaasResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListSaasResponse.ProtoReflect.Descriptor instead. +func (*ListSaasResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListSaasResponse) GetSaas() []*Saas { + if x != nil { + return x.Saas + } + return nil +} + +func (x *ListSaasResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListSaasResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetSaas method. +type GetSaasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSaasRequest) Reset() { + *x = GetSaasRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSaasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSaasRequest) ProtoMessage() {} + +func (x *GetSaasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetSaasRequest.ProtoReflect.Descriptor instead. +func (*GetSaasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetSaasRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateSaas method. +type CreateSaasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the saas. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new saas. + SaasId string `protobuf:"bytes,10503,opt,name=saas_id,json=saasId,proto3" json:"saas_id,omitempty"` + // Required. The desired state for the saas. + Saas *Saas `protobuf:"bytes,10504,opt,name=saas,proto3" json:"saas,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateSaasRequest) Reset() { + *x = CreateSaasRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateSaasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSaasRequest) ProtoMessage() {} + +func (x *CreateSaasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateSaasRequest.ProtoReflect.Descriptor instead. +func (*CreateSaasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateSaasRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSaasRequest) GetSaasId() string { + if x != nil { + return x.SaasId + } + return "" +} + +func (x *CreateSaasRequest) GetSaas() *Saas { + if x != nil { + return x.Saas + } + return nil +} + +func (x *CreateSaasRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateSaasRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateSaas method. +type UpdateSaasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the saas. + Saas *Saas `protobuf:"bytes,10504,opt,name=saas,proto3" json:"saas,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // Saas 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. + // + // If the user does not provide a mask then all fields in the + // Saas will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateSaasRequest) Reset() { + *x = UpdateSaasRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateSaasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSaasRequest) ProtoMessage() {} + +func (x *UpdateSaasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 UpdateSaasRequest.ProtoReflect.Descriptor instead. +func (*UpdateSaasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateSaasRequest) GetSaas() *Saas { + if x != nil { + return x.Saas + } + return nil +} + +func (x *UpdateSaasRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateSaasRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateSaasRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteSaas method. +type DeleteSaasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the saas. This is + // used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the saas. The Any wildcard (`*`) requires that the resource + // must already exists, and the Not Any wildcard (`!*`) requires that it must + // not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteSaasRequest) Reset() { + *x = DeleteSaasRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteSaasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSaasRequest) ProtoMessage() {} + +func (x *DeleteSaasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 DeleteSaasRequest.ProtoReflect.Descriptor instead. +func (*DeleteSaasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteSaasRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteSaasRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteSaasRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteSaasRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListTenants method. +type ListTenantsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the tenant. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of tenants to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListTenantsRequest) Reset() { + *x = ListTenantsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTenantsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTenantsRequest) ProtoMessage() {} + +func (x *ListTenantsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListTenantsRequest.ProtoReflect.Descriptor instead. +func (*ListTenantsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{6} +} + +func (x *ListTenantsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListTenantsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListTenantsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListTenantsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListTenantsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListTenants method. +type ListTenantsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting tenants. + Tenants []*Tenant `protobuf:"bytes,10509,rep,name=tenants,proto3" json:"tenants,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListTenants call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListTenantsResponse) Reset() { + *x = ListTenantsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTenantsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTenantsResponse) ProtoMessage() {} + +func (x *ListTenantsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListTenantsResponse.ProtoReflect.Descriptor instead. +func (*ListTenantsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListTenantsResponse) GetTenants() []*Tenant { + if x != nil { + return x.Tenants + } + return nil +} + +func (x *ListTenantsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListTenantsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetTenant method. +type GetTenantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetTenantRequest) Reset() { + *x = GetTenantRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetTenantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTenantRequest) ProtoMessage() {} + +func (x *GetTenantRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetTenantRequest.ProtoReflect.Descriptor instead. +func (*GetTenantRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{8} +} + +func (x *GetTenantRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateTenant method. +type CreateTenantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the tenant. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new tenant. + TenantId string `protobuf:"bytes,10503,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"` + // Required. The desired state for the tenant. + Tenant *Tenant `protobuf:"bytes,10504,opt,name=tenant,proto3" json:"tenant,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateTenantRequest) Reset() { + *x = CreateTenantRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateTenantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTenantRequest) ProtoMessage() {} + +func (x *CreateTenantRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateTenantRequest.ProtoReflect.Descriptor instead. +func (*CreateTenantRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateTenantRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateTenantRequest) GetTenantId() string { + if x != nil { + return x.TenantId + } + return "" +} + +func (x *CreateTenantRequest) GetTenant() *Tenant { + if x != nil { + return x.Tenant + } + return nil +} + +func (x *CreateTenantRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateTenantRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateTenant method. +type UpdateTenantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the tenant. + Tenant *Tenant `protobuf:"bytes,10504,opt,name=tenant,proto3" json:"tenant,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // Tenant 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. + // + // If the user does not provide a mask then all fields in the + // Tenant will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateTenantRequest) Reset() { + *x = UpdateTenantRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateTenantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateTenantRequest) ProtoMessage() {} + +func (x *UpdateTenantRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 UpdateTenantRequest.ProtoReflect.Descriptor instead. +func (*UpdateTenantRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateTenantRequest) GetTenant() *Tenant { + if x != nil { + return x.Tenant + } + return nil +} + +func (x *UpdateTenantRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateTenantRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateTenantRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteTenant method. +type DeleteTenantRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the tenant. This is + // used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the tenant. The Any wildcard (`*`) requires that the resource + // must already exists, and the Not Any wildcard (`!*`) requires that it must + // not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteTenantRequest) Reset() { + *x = DeleteTenantRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteTenantRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteTenantRequest) ProtoMessage() {} + +func (x *DeleteTenantRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 DeleteTenantRequest.ProtoReflect.Descriptor instead. +func (*DeleteTenantRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteTenantRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteTenantRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteTenantRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteTenantRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListUnitKinds method. +type ListUnitKindsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit kind. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of unit kinds to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListUnitKindsRequest) Reset() { + *x = ListUnitKindsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitKindsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitKindsRequest) ProtoMessage() {} + +func (x *ListUnitKindsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitKindsRequest.ProtoReflect.Descriptor instead. +func (*ListUnitKindsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{12} +} + +func (x *ListUnitKindsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListUnitKindsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListUnitKindsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListUnitKindsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListUnitKindsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListUnitKinds method. +type ListUnitKindsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting unit kinds. + UnitKinds []*UnitKind `protobuf:"bytes,10509,rep,name=unit_kinds,json=unitKinds,proto3" json:"unit_kinds,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListUnitKinds call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListUnitKindsResponse) Reset() { + *x = ListUnitKindsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitKindsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitKindsResponse) ProtoMessage() {} + +func (x *ListUnitKindsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitKindsResponse.ProtoReflect.Descriptor instead. +func (*ListUnitKindsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{13} +} + +func (x *ListUnitKindsResponse) GetUnitKinds() []*UnitKind { + if x != nil { + return x.UnitKinds + } + return nil +} + +func (x *ListUnitKindsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListUnitKindsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetUnitKind method. +type GetUnitKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetUnitKindRequest) Reset() { + *x = GetUnitKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetUnitKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUnitKindRequest) ProtoMessage() {} + +func (x *GetUnitKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetUnitKindRequest.ProtoReflect.Descriptor instead. +func (*GetUnitKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{14} +} + +func (x *GetUnitKindRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateUnitKind method. +type CreateUnitKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit kind. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new unit kind. + UnitKindId string `protobuf:"bytes,10503,opt,name=unit_kind_id,json=unitKindId,proto3" json:"unit_kind_id,omitempty"` + // Required. The desired state for the unit kind. + UnitKind *UnitKind `protobuf:"bytes,10504,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateUnitKindRequest) Reset() { + *x = CreateUnitKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateUnitKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUnitKindRequest) ProtoMessage() {} + +func (x *CreateUnitKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateUnitKindRequest.ProtoReflect.Descriptor instead. +func (*CreateUnitKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateUnitKindRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateUnitKindRequest) GetUnitKindId() string { + if x != nil { + return x.UnitKindId + } + return "" +} + +func (x *CreateUnitKindRequest) GetUnitKind() *UnitKind { + if x != nil { + return x.UnitKind + } + return nil +} + +func (x *CreateUnitKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateUnitKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateUnitKind method. +type UpdateUnitKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the unit kind. + UnitKind *UnitKind `protobuf:"bytes,10504,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // UnitKind 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. + // + // If the user does not provide a mask then all fields in the + // UnitKind will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateUnitKindRequest) Reset() { + *x = UpdateUnitKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateUnitKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUnitKindRequest) ProtoMessage() {} + +func (x *UpdateUnitKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 UpdateUnitKindRequest.ProtoReflect.Descriptor instead. +func (*UpdateUnitKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateUnitKindRequest) GetUnitKind() *UnitKind { + if x != nil { + return x.UnitKind + } + return nil +} + +func (x *UpdateUnitKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateUnitKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateUnitKindRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteUnitKind method. +type DeleteUnitKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the unit kind. This + // is used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the unit kind. The Any wildcard (`*`) requires that the + // resource must already exists, and the Not Any wildcard (`!*`) requires that + // it must not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteUnitKindRequest) Reset() { + *x = DeleteUnitKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteUnitKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUnitKindRequest) ProtoMessage() {} + +func (x *DeleteUnitKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 DeleteUnitKindRequest.ProtoReflect.Descriptor instead. +func (*DeleteUnitKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteUnitKindRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteUnitKindRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteUnitKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteUnitKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListUnits method. +type ListUnitsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of units to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListUnitsRequest) Reset() { + *x = ListUnitsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitsRequest) ProtoMessage() {} + +func (x *ListUnitsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitsRequest.ProtoReflect.Descriptor instead. +func (*ListUnitsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{18} +} + +func (x *ListUnitsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListUnitsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListUnitsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListUnitsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListUnitsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListUnits method. +type ListUnitsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting units. + Units []*Unit `protobuf:"bytes,10509,rep,name=units,proto3" json:"units,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListUnits call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListUnitsResponse) Reset() { + *x = ListUnitsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitsResponse) ProtoMessage() {} + +func (x *ListUnitsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitsResponse.ProtoReflect.Descriptor instead. +func (*ListUnitsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{19} +} + +func (x *ListUnitsResponse) GetUnits() []*Unit { + if x != nil { + return x.Units + } + return nil +} + +func (x *ListUnitsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListUnitsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetUnit method. +type GetUnitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetUnitRequest) Reset() { + *x = GetUnitRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetUnitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUnitRequest) ProtoMessage() {} + +func (x *GetUnitRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetUnitRequest.ProtoReflect.Descriptor instead. +func (*GetUnitRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{20} +} + +func (x *GetUnitRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateUnit method. +type CreateUnitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new unit. + UnitId string `protobuf:"bytes,10503,opt,name=unit_id,json=unitId,proto3" json:"unit_id,omitempty"` + // Required. The desired state for the unit. + Unit *Unit `protobuf:"bytes,10504,opt,name=unit,proto3" json:"unit,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateUnitRequest) Reset() { + *x = CreateUnitRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateUnitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUnitRequest) ProtoMessage() {} + +func (x *CreateUnitRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateUnitRequest.ProtoReflect.Descriptor instead. +func (*CreateUnitRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{21} +} + +func (x *CreateUnitRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateUnitRequest) GetUnitId() string { + if x != nil { + return x.UnitId + } + return "" +} + +func (x *CreateUnitRequest) GetUnit() *Unit { + if x != nil { + return x.Unit + } + return nil +} + +func (x *CreateUnitRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateUnitRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateUnit method. +type UpdateUnitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the unit. + Unit *Unit `protobuf:"bytes,10504,opt,name=unit,proto3" json:"unit,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // Unit 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. + // + // If the user does not provide a mask then all fields in the + // Unit will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateUnitRequest) Reset() { + *x = UpdateUnitRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateUnitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUnitRequest) ProtoMessage() {} + +func (x *UpdateUnitRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 UpdateUnitRequest.ProtoReflect.Descriptor instead. +func (*UpdateUnitRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{22} +} + +func (x *UpdateUnitRequest) GetUnit() *Unit { + if x != nil { + return x.Unit + } + return nil +} + +func (x *UpdateUnitRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateUnitRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateUnitRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteUnit method. +type DeleteUnitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the unit. This is + // used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the unit. The Any wildcard (`*`) requires that the resource + // must already exists, and the Not Any wildcard (`!*`) requires that it must + // not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteUnitRequest) Reset() { + *x = DeleteUnitRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteUnitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUnitRequest) ProtoMessage() {} + +func (x *DeleteUnitRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 DeleteUnitRequest.ProtoReflect.Descriptor instead. +func (*DeleteUnitRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{23} +} + +func (x *DeleteUnitRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteUnitRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteUnitRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteUnitRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListUnitOperations method. +type ListUnitOperationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit operation. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of unit operations to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListUnitOperationsRequest) Reset() { + *x = ListUnitOperationsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitOperationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitOperationsRequest) ProtoMessage() {} + +func (x *ListUnitOperationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitOperationsRequest.ProtoReflect.Descriptor instead. +func (*ListUnitOperationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{24} +} + +func (x *ListUnitOperationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListUnitOperationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListUnitOperationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListUnitOperationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListUnitOperationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListUnitOperations method. +type ListUnitOperationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting unit operations. + UnitOperations []*UnitOperation `protobuf:"bytes,10509,rep,name=unit_operations,json=unitOperations,proto3" json:"unit_operations,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListUnitOperations call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListUnitOperationsResponse) Reset() { + *x = ListUnitOperationsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListUnitOperationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListUnitOperationsResponse) ProtoMessage() {} + +func (x *ListUnitOperationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListUnitOperationsResponse.ProtoReflect.Descriptor instead. +func (*ListUnitOperationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{25} +} + +func (x *ListUnitOperationsResponse) GetUnitOperations() []*UnitOperation { + if x != nil { + return x.UnitOperations + } + return nil +} + +func (x *ListUnitOperationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListUnitOperationsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetUnitOperation method. +type GetUnitOperationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetUnitOperationRequest) Reset() { + *x = GetUnitOperationRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetUnitOperationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUnitOperationRequest) ProtoMessage() {} + +func (x *GetUnitOperationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetUnitOperationRequest.ProtoReflect.Descriptor instead. +func (*GetUnitOperationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{26} +} + +func (x *GetUnitOperationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateUnitOperation method. +type CreateUnitOperationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the unit operation. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new unit operation. + UnitOperationId string `protobuf:"bytes,10503,opt,name=unit_operation_id,json=unitOperationId,proto3" json:"unit_operation_id,omitempty"` + // Required. The desired state for the unit operation. + UnitOperation *UnitOperation `protobuf:"bytes,10504,opt,name=unit_operation,json=unitOperation,proto3" json:"unit_operation,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateUnitOperationRequest) Reset() { + *x = CreateUnitOperationRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateUnitOperationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateUnitOperationRequest) ProtoMessage() {} + +func (x *CreateUnitOperationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateUnitOperationRequest.ProtoReflect.Descriptor instead. +func (*CreateUnitOperationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{27} +} + +func (x *CreateUnitOperationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateUnitOperationRequest) GetUnitOperationId() string { + if x != nil { + return x.UnitOperationId + } + return "" +} + +func (x *CreateUnitOperationRequest) GetUnitOperation() *UnitOperation { + if x != nil { + return x.UnitOperation + } + return nil +} + +func (x *CreateUnitOperationRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateUnitOperationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateUnitOperation method. +type UpdateUnitOperationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the unit operation. + UnitOperation *UnitOperation `protobuf:"bytes,10504,opt,name=unit_operation,json=unitOperation,proto3" json:"unit_operation,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // UnitOperation 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. + // + // If the user does not provide a mask then all fields in the + // UnitOperation will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateUnitOperationRequest) Reset() { + *x = UpdateUnitOperationRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateUnitOperationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUnitOperationRequest) ProtoMessage() {} + +func (x *UpdateUnitOperationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 UpdateUnitOperationRequest.ProtoReflect.Descriptor instead. +func (*UpdateUnitOperationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{28} +} + +func (x *UpdateUnitOperationRequest) GetUnitOperation() *UnitOperation { + if x != nil { + return x.UnitOperation + } + return nil +} + +func (x *UpdateUnitOperationRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateUnitOperationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateUnitOperationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteUnitOperation method. +type DeleteUnitOperationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the unit operation. + // This is used with state-changing methods to prevent accidental overwrites + // when multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the unit operation. The Any wildcard (`*`) requires that the + // resource must already exists, and the Not Any wildcard (`!*`) requires that + // it must not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteUnitOperationRequest) Reset() { + *x = DeleteUnitOperationRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteUnitOperationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUnitOperationRequest) ProtoMessage() {} + +func (x *DeleteUnitOperationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 DeleteUnitOperationRequest.ProtoReflect.Descriptor instead. +func (*DeleteUnitOperationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{29} +} + +func (x *DeleteUnitOperationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteUnitOperationRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteUnitOperationRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteUnitOperationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListReleases method. +type ListReleasesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the release. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of releases to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListReleasesRequest) Reset() { + *x = ListReleasesRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListReleasesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListReleasesRequest) ProtoMessage() {} + +func (x *ListReleasesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListReleasesRequest.ProtoReflect.Descriptor instead. +func (*ListReleasesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{30} +} + +func (x *ListReleasesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListReleasesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListReleasesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListReleasesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListReleasesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListReleases method. +type ListReleasesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting releases. + Releases []*Release `protobuf:"bytes,10509,rep,name=releases,proto3" json:"releases,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListReleases call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListReleasesResponse) Reset() { + *x = ListReleasesResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListReleasesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListReleasesResponse) ProtoMessage() {} + +func (x *ListReleasesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 ListReleasesResponse.ProtoReflect.Descriptor instead. +func (*ListReleasesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{31} +} + +func (x *ListReleasesResponse) GetReleases() []*Release { + if x != nil { + return x.Releases + } + return nil +} + +func (x *ListReleasesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListReleasesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetRelease method. +type GetReleaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetReleaseRequest) Reset() { + *x = GetReleaseRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetReleaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetReleaseRequest) ProtoMessage() {} + +func (x *GetReleaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 GetReleaseRequest.ProtoReflect.Descriptor instead. +func (*GetReleaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{32} +} + +func (x *GetReleaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateRelease method. +type CreateReleaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the release. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new release. + ReleaseId string `protobuf:"bytes,10503,opt,name=release_id,json=releaseId,proto3" json:"release_id,omitempty"` + // Required. The desired state for the release. + Release *Release `protobuf:"bytes,10504,opt,name=release,proto3" json:"release,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateReleaseRequest) Reset() { + *x = CreateReleaseRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateReleaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateReleaseRequest) ProtoMessage() {} + +func (x *CreateReleaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_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 CreateReleaseRequest.ProtoReflect.Descriptor instead. +func (*CreateReleaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{33} +} + +func (x *CreateReleaseRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateReleaseRequest) GetReleaseId() string { + if x != nil { + return x.ReleaseId + } + return "" +} + +func (x *CreateReleaseRequest) GetRelease() *Release { + if x != nil { + return x.Release + } + return nil +} + +func (x *CreateReleaseRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateReleaseRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateRelease method. +type UpdateReleaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the release. + Release *Release `protobuf:"bytes,10504,opt,name=release,proto3" json:"release,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // Release 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. + // + // If the user does not provide a mask then all fields in the + // Release will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateReleaseRequest) Reset() { + *x = UpdateReleaseRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateReleaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateReleaseRequest) ProtoMessage() {} + +func (x *UpdateReleaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[34] + 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 UpdateReleaseRequest.ProtoReflect.Descriptor instead. +func (*UpdateReleaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{34} +} + +func (x *UpdateReleaseRequest) GetRelease() *Release { + if x != nil { + return x.Release + } + return nil +} + +func (x *UpdateReleaseRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateReleaseRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateReleaseRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteRelease method. +type DeleteReleaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the release. This is + // used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the release. The Any wildcard (`*`) requires that the resource + // must already exists, and the Not Any wildcard (`!*`) requires that it must + // not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteReleaseRequest) Reset() { + *x = DeleteReleaseRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteReleaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteReleaseRequest) ProtoMessage() {} + +func (x *DeleteReleaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes[35] + 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 DeleteReleaseRequest.ProtoReflect.Descriptor instead. +func (*DeleteReleaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP(), []int{35} +} + +func (x *DeleteReleaseRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteReleaseRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteReleaseRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteReleaseRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +var File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto protoreflect.FileDescriptor + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDesc = []byte{ + 0x0a, 0x4b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x31, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x4d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x22, 0xca, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, + 0x61, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xac, + 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x52, 0x04, 0x73, 0x61, 0x61, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x52, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x61, 0x61, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x91, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x61, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, + 0x12, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x61, 0x61, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x07, 0x73, 0x61, 0x61, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x61, 0x61, 0x73, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x04, + 0x73, 0x61, 0x61, 0x73, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x61, 0x61, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x61, 0x61, 0x73, 0x12, + 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xea, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x04, 0x73, + 0x61, 0x61, 0x73, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, + 0x61, 0x61, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x73, 0x61, 0x61, 0x73, 0x12, 0x24, + 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, + 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, + 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x22, 0xb0, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, + 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x61, 0x61, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, + 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xcf, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xb7, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x54, 0x0a, 0x07, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x07, 0x74, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, + 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x56, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x02, 0x0a, 0x13, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x06, + 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xf2, 0x01, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x57, 0x0a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x18, 0x88, 0x52, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, + 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x22, 0xb4, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, + 0x25, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, + 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd3, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x12, 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, + 0x6e, 0x64, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, + 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xc0, 0x01, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x5f, + 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, + 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0x5a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, + 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, + 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xaf, 0x02, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x12, + 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64, + 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x6e, + 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x5e, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x74, + 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xfb, + 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5e, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x74, + 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, + 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, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb8, 0x01, 0x0a, + 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, + 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, + 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, + 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, + 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, + 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xcb, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xaf, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x05, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x55, 0x6e, 0x69, 0x74, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x52, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, + 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x91, 0x02, 0x0a, 0x11, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x07, 0x75, 0x6e, 0x69, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x51, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x88, + 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, + 0xea, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x51, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x88, 0x52, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, + 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, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb0, 0x01, 0x0a, + 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, + 0xdd, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x8c, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0xd4, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, + 0x0a, 0x0f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x64, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x69, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x49, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd2, 0x02, 0x0a, + 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x0a, 0x11, 0x75, 0x6e, + 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x75, 0x6e, 0x69, + 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x6d, 0x0a, 0x0e, + 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x88, + 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x75, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x8f, 0x02, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x6d, 0x0a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0d, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, + 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x6b, 0x22, 0xc2, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x49, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, + 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, + 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xd1, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xbb, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x52, 0x08, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x27, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x58, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x5a, 0x0a, 0x07, 0x72, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xf6, 0x01, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, + 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x32, + 0x9d, 0x35, 0x0a, 0x0f, 0x53, 0x61, 0x61, 0x73, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0xd3, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x61, 0x73, + 0x12, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x61, 0x61, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 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, 0x73, 0x61, 0x61, 0x73, 0x12, 0xc3, 0x01, 0x0a, 0x07, 0x47, 0x65, + 0x74, 0x53, 0x61, 0x61, 0x73, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x61, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x61, + 0x73, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, + 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x73, 0x61, 0x61, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xde, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x61, 0x73, 0x12, 0x44, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x22, 0x51, 0xda, + 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x61, 0x61, 0x73, 0x2c, 0x73, 0x61, + 0x61, 0x73, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x04, 0x73, 0x61, 0x61, + 0x73, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x73, 0x61, 0x61, 0x73, + 0x12, 0xe0, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x61, 0x73, 0x12, + 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x61, 0x61, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x22, 0x53, + 0xda, 0x41, 0x10, 0x73, 0x61, 0x61, 0x73, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x04, 0x73, 0x61, 0x61, 0x73, 0x32, + 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x73, 0x61, 0x61, 0x73, 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, 0x73, 0x61, 0x61, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, + 0x61, 0x73, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x61, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, + 0x2d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x73, 0x61, 0x61, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdf, + 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, 0x45, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x65, + 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, + 0x12, 0xcc, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x12, 0x43, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x3f, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xed, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x22, 0x5a, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, + 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2c, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x22, 0x30, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x12, + 0xef, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, 0x74, + 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x22, 0x5c, 0xda, 0x41, 0x12, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x2c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, + 0x3a, 0x06, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x32, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, 0x61, + 0x6e, 0x74, 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x65, 0x6e, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x3f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x32, 0x2a, 0x30, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x48, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0xd4, 0x01, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x45, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x22, 0x41, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, + 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xfe, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x65, + 0xda, 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, + 0x69, 0x6e, 0x64, 0x2c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, + 0x64, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x80, 0x02, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x22, + 0x67, 0xda, 0x41, 0x15, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x2c, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, + 0x09, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x32, 0x3c, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 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, 0x75, 0x6e, 0x69, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb5, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x48, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x41, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xd7, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x43, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0xc4, 0x01, 0x0a, 0x07, 0x47, + 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, + 0x69, 0x74, 0x22, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xdf, 0x01, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, + 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x22, + 0x52, 0xda, 0x41, 0x13, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x6e, 0x69, 0x74, 0x2c, + 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x3a, 0x04, 0x75, + 0x6e, 0x69, 0x74, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, + 0x69, 0x74, 0x73, 0x12, 0xe1, 0x01, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, + 0x69, 0x74, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, + 0x74, 0x22, 0x54, 0xda, 0x41, 0x10, 0x75, 0x6e, 0x69, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x32, 0x33, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x75, 0x6e, + 0x69, 0x74, 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, 0x75, + 0x6e, 0x69, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x30, 0x2a, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xfb, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x48, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, + 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x46, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa1, 0x02, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0xda, 0x41, 0x27, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 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, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xa3, 0x02, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0xda, 0x41, 0x1a, 0x75, 0x6e, + 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x58, 0x3a, 0x0e, + 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x46, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6f, + 0x70, 0x65, 0x72, 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, 0x75, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x46, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x75, 0x6e, 0x69, 0x74, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe3, 0x01, + 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x46, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x42, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x12, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x12, 0xd0, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf4, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x5e, 0xda, + 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x2c, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x3a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 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, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0xf6, 0x01, + 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, + 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x6c, + 0x65, 0x61, 0x73, 0x65, 0x22, 0x60, 0xda, 0x41, 0x13, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x44, 0x3a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x32, 0x39, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 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, 0x72, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, + 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x52, 0xca, 0x41, 0x1e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 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, + 0xd7, 0x02, 0x0a, 0x35, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x1b, 0x53, 0x61, 0x61, 0x73, 0x44, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0x3b, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0xaa, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x31, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x61, 0x61, + 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xea, 0x02, 0x35, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, + 0x3a, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescOnce sync.Once + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescData = file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDesc +) + +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescGZIP() []byte { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescOnce.Do(func() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescData) + }) + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDescData +} + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_goTypes = []any{ + (*ListSaasRequest)(nil), // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListSaasRequest + (*ListSaasResponse)(nil), // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListSaasResponse + (*GetSaasRequest)(nil), // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetSaasRequest + (*CreateSaasRequest)(nil), // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateSaasRequest + (*UpdateSaasRequest)(nil), // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateSaasRequest + (*DeleteSaasRequest)(nil), // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteSaasRequest + (*ListTenantsRequest)(nil), // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListTenantsRequest + (*ListTenantsResponse)(nil), // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListTenantsResponse + (*GetTenantRequest)(nil), // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetTenantRequest + (*CreateTenantRequest)(nil), // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateTenantRequest + (*UpdateTenantRequest)(nil), // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateTenantRequest + (*DeleteTenantRequest)(nil), // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteTenantRequest + (*ListUnitKindsRequest)(nil), // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitKindsRequest + (*ListUnitKindsResponse)(nil), // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitKindsResponse + (*GetUnitKindRequest)(nil), // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitKindRequest + (*CreateUnitKindRequest)(nil), // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitKindRequest + (*UpdateUnitKindRequest)(nil), // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitKindRequest + (*DeleteUnitKindRequest)(nil), // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitKindRequest + (*ListUnitsRequest)(nil), // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitsRequest + (*ListUnitsResponse)(nil), // 19: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitsResponse + (*GetUnitRequest)(nil), // 20: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitRequest + (*CreateUnitRequest)(nil), // 21: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitRequest + (*UpdateUnitRequest)(nil), // 22: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitRequest + (*DeleteUnitRequest)(nil), // 23: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitRequest + (*ListUnitOperationsRequest)(nil), // 24: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitOperationsRequest + (*ListUnitOperationsResponse)(nil), // 25: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitOperationsResponse + (*GetUnitOperationRequest)(nil), // 26: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitOperationRequest + (*CreateUnitOperationRequest)(nil), // 27: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitOperationRequest + (*UpdateUnitOperationRequest)(nil), // 28: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitOperationRequest + (*DeleteUnitOperationRequest)(nil), // 29: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitOperationRequest + (*ListReleasesRequest)(nil), // 30: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListReleasesRequest + (*ListReleasesResponse)(nil), // 31: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListReleasesResponse + (*GetReleaseRequest)(nil), // 32: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetReleaseRequest + (*CreateReleaseRequest)(nil), // 33: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateReleaseRequest + (*UpdateReleaseRequest)(nil), // 34: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateReleaseRequest + (*DeleteReleaseRequest)(nil), // 35: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteReleaseRequest + (*Saas)(nil), // 36: google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + (*fieldmaskpb.FieldMask)(nil), // 37: google.protobuf.FieldMask + (*Tenant)(nil), // 38: google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + (*UnitKind)(nil), // 39: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + (*Unit)(nil), // 40: google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + (*UnitOperation)(nil), // 41: google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + (*Release)(nil), // 42: google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + (*emptypb.Empty)(nil), // 43: google.protobuf.Empty +} +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_depIdxs = []int32{ + 36, // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListSaasResponse.saas:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 36, // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateSaasRequest.saas:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 36, // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateSaasRequest.saas:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 37, // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateSaasRequest.update_mask:type_name -> google.protobuf.FieldMask + 38, // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListTenantsResponse.tenants:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 38, // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateTenantRequest.tenant:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 38, // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateTenantRequest.tenant:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 37, // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateTenantRequest.update_mask:type_name -> google.protobuf.FieldMask + 39, // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitKindsResponse.unit_kinds:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 39, // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitKindRequest.unit_kind:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 39, // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitKindRequest.unit_kind:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 37, // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitKindRequest.update_mask:type_name -> google.protobuf.FieldMask + 40, // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitsResponse.units:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 40, // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitRequest.unit:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 40, // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitRequest.unit:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 37, // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitRequest.update_mask:type_name -> google.protobuf.FieldMask + 41, // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitOperationsResponse.unit_operations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 41, // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitOperationRequest.unit_operation:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 41, // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitOperationRequest.unit_operation:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 37, // 19: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitOperationRequest.update_mask:type_name -> google.protobuf.FieldMask + 42, // 20: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListReleasesResponse.releases:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 42, // 21: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateReleaseRequest.release:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 42, // 22: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateReleaseRequest.release:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 37, // 23: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateReleaseRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 24: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListSaas:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListSaasRequest + 2, // 25: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetSaas:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetSaasRequest + 3, // 26: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateSaas:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateSaasRequest + 4, // 27: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateSaas:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateSaasRequest + 5, // 28: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteSaas:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteSaasRequest + 6, // 29: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListTenants:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListTenantsRequest + 8, // 30: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetTenant:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetTenantRequest + 9, // 31: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateTenant:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateTenantRequest + 10, // 32: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateTenant:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateTenantRequest + 11, // 33: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteTenant:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteTenantRequest + 12, // 34: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitKinds:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitKindsRequest + 14, // 35: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitKindRequest + 15, // 36: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitKindRequest + 16, // 37: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitKindRequest + 17, // 38: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitKindRequest + 18, // 39: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnits:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitsRequest + 20, // 40: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnit:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitRequest + 21, // 41: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnit:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitRequest + 22, // 42: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnit:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitRequest + 23, // 43: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnit:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitRequest + 24, // 44: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitOperations:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitOperationsRequest + 26, // 45: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitOperation:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetUnitOperationRequest + 27, // 46: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitOperation:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateUnitOperationRequest + 28, // 47: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitOperation:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateUnitOperationRequest + 29, // 48: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitOperation:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteUnitOperationRequest + 30, // 49: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListReleases:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListReleasesRequest + 32, // 50: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetRelease:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetReleaseRequest + 33, // 51: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateRelease:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateReleaseRequest + 34, // 52: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateRelease:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateReleaseRequest + 35, // 53: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteRelease:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteReleaseRequest + 1, // 54: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListSaas:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListSaasResponse + 36, // 55: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetSaas:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 36, // 56: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateSaas:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 36, // 57: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateSaas:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Saas + 43, // 58: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteSaas:output_type -> google.protobuf.Empty + 7, // 59: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListTenants:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListTenantsResponse + 38, // 60: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetTenant:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 38, // 61: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateTenant:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 38, // 62: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateTenant:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Tenant + 43, // 63: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteTenant:output_type -> google.protobuf.Empty + 13, // 64: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitKinds:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitKindsResponse + 39, // 65: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 39, // 66: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 39, // 67: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitKind + 43, // 68: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitKind:output_type -> google.protobuf.Empty + 19, // 69: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnits:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitsResponse + 40, // 70: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnit:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 40, // 71: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnit:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 40, // 72: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnit:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Unit + 43, // 73: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnit:output_type -> google.protobuf.Empty + 25, // 74: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListUnitOperations:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListUnitOperationsResponse + 41, // 75: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetUnitOperation:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 41, // 76: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateUnitOperation:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 41, // 77: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateUnitOperation:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UnitOperation + 43, // 78: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteUnitOperation:output_type -> google.protobuf.Empty + 31, // 79: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.ListReleases:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListReleasesResponse + 42, // 80: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.GetRelease:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 42, // 81: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.CreateRelease:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 42, // 82: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.UpdateRelease:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Release + 43, // 83: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments.DeleteRelease:output_type -> google.protobuf.Empty + 54, // [54:84] is the sub-list for method output_type + 24, // [24:54] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name +} + +func init() { file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_init() } +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_init() { + if File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto != nil { + return + } + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_resources_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 36, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_goTypes, + DependencyIndexes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_depIdxs, + MessageInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_msgTypes, + }.Build() + File_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto = out.File + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_rawDesc = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_goTypes = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_deployments_service_proto_depIdxs = nil +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service_grpc.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service_grpc.pb.go new file mode 100644 index 000000000000..16ac076bccdc --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/deployments_service_grpc.pb.go @@ -0,0 +1,1256 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/deployments_service.proto + +package saasservicemgmtpb + +import ( + context "context" + + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// 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 ( + SaasDeployments_ListSaas_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListSaas" + SaasDeployments_GetSaas_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetSaas" + SaasDeployments_CreateSaas_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateSaas" + SaasDeployments_UpdateSaas_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateSaas" + SaasDeployments_DeleteSaas_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteSaas" + SaasDeployments_ListTenants_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListTenants" + SaasDeployments_GetTenant_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetTenant" + SaasDeployments_CreateTenant_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateTenant" + SaasDeployments_UpdateTenant_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateTenant" + SaasDeployments_DeleteTenant_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteTenant" + SaasDeployments_ListUnitKinds_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListUnitKinds" + SaasDeployments_GetUnitKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetUnitKind" + SaasDeployments_CreateUnitKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateUnitKind" + SaasDeployments_UpdateUnitKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateUnitKind" + SaasDeployments_DeleteUnitKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteUnitKind" + SaasDeployments_ListUnits_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListUnits" + SaasDeployments_GetUnit_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetUnit" + SaasDeployments_CreateUnit_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateUnit" + SaasDeployments_UpdateUnit_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateUnit" + SaasDeployments_DeleteUnit_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteUnit" + SaasDeployments_ListUnitOperations_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListUnitOperations" + SaasDeployments_GetUnitOperation_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetUnitOperation" + SaasDeployments_CreateUnitOperation_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateUnitOperation" + SaasDeployments_UpdateUnitOperation_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateUnitOperation" + SaasDeployments_DeleteUnitOperation_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteUnitOperation" + SaasDeployments_ListReleases_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/ListReleases" + SaasDeployments_GetRelease_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/GetRelease" + SaasDeployments_CreateRelease_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/CreateRelease" + SaasDeployments_UpdateRelease_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/UpdateRelease" + SaasDeployments_DeleteRelease_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments/DeleteRelease" +) + +// SaasDeploymentsClient is the client API for SaasDeployments 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 SaasDeploymentsClient interface { + // Retrieve a collection of saas. + ListSaas(ctx context.Context, in *ListSaasRequest, opts ...grpc.CallOption) (*ListSaasResponse, error) + // Retrieve a single saas. + GetSaas(ctx context.Context, in *GetSaasRequest, opts ...grpc.CallOption) (*Saas, error) + // Create a new saas. + CreateSaas(ctx context.Context, in *CreateSaasRequest, opts ...grpc.CallOption) (*Saas, error) + // Update a single saas. + UpdateSaas(ctx context.Context, in *UpdateSaasRequest, opts ...grpc.CallOption) (*Saas, error) + // Delete a single saas. + DeleteSaas(ctx context.Context, in *DeleteSaasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of tenants. + ListTenants(ctx context.Context, in *ListTenantsRequest, opts ...grpc.CallOption) (*ListTenantsResponse, error) + // Retrieve a single tenant. + GetTenant(ctx context.Context, in *GetTenantRequest, opts ...grpc.CallOption) (*Tenant, error) + // Create a new tenant. + CreateTenant(ctx context.Context, in *CreateTenantRequest, opts ...grpc.CallOption) (*Tenant, error) + // Update a single tenant. + UpdateTenant(ctx context.Context, in *UpdateTenantRequest, opts ...grpc.CallOption) (*Tenant, error) + // Delete a single tenant. + DeleteTenant(ctx context.Context, in *DeleteTenantRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of unit kinds. + ListUnitKinds(ctx context.Context, in *ListUnitKindsRequest, opts ...grpc.CallOption) (*ListUnitKindsResponse, error) + // Retrieve a single unit kind. + GetUnitKind(ctx context.Context, in *GetUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) + // Create a new unit kind. + CreateUnitKind(ctx context.Context, in *CreateUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) + // Update a single unit kind. + UpdateUnitKind(ctx context.Context, in *UpdateUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) + // Delete a single unit kind. + DeleteUnitKind(ctx context.Context, in *DeleteUnitKindRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of units. + ListUnits(ctx context.Context, in *ListUnitsRequest, opts ...grpc.CallOption) (*ListUnitsResponse, error) + // Retrieve a single unit. + GetUnit(ctx context.Context, in *GetUnitRequest, opts ...grpc.CallOption) (*Unit, error) + // Create a new unit. + CreateUnit(ctx context.Context, in *CreateUnitRequest, opts ...grpc.CallOption) (*Unit, error) + // Update a single unit. + UpdateUnit(ctx context.Context, in *UpdateUnitRequest, opts ...grpc.CallOption) (*Unit, error) + // Delete a single unit. + DeleteUnit(ctx context.Context, in *DeleteUnitRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of unit operations. + ListUnitOperations(ctx context.Context, in *ListUnitOperationsRequest, opts ...grpc.CallOption) (*ListUnitOperationsResponse, error) + // Retrieve a single unit operation. + GetUnitOperation(ctx context.Context, in *GetUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) + // Create a new unit operation. + CreateUnitOperation(ctx context.Context, in *CreateUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) + // Update a single unit operation. + UpdateUnitOperation(ctx context.Context, in *UpdateUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) + // Delete a single unit operation. + DeleteUnitOperation(ctx context.Context, in *DeleteUnitOperationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of releases. + ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (*ListReleasesResponse, error) + // Retrieve a single release. + GetRelease(ctx context.Context, in *GetReleaseRequest, opts ...grpc.CallOption) (*Release, error) + // Create a new release. + CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*Release, error) + // Update a single release. + UpdateRelease(ctx context.Context, in *UpdateReleaseRequest, opts ...grpc.CallOption) (*Release, error) + // Delete a single release. + DeleteRelease(ctx context.Context, in *DeleteReleaseRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) +} + +type saasDeploymentsClient struct { + cc grpc.ClientConnInterface +} + +func NewSaasDeploymentsClient(cc grpc.ClientConnInterface) SaasDeploymentsClient { + return &saasDeploymentsClient{cc} +} + +func (c *saasDeploymentsClient) ListSaas(ctx context.Context, in *ListSaasRequest, opts ...grpc.CallOption) (*ListSaasResponse, error) { + out := new(ListSaasResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListSaas_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetSaas(ctx context.Context, in *GetSaasRequest, opts ...grpc.CallOption) (*Saas, error) { + out := new(Saas) + err := c.cc.Invoke(ctx, SaasDeployments_GetSaas_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateSaas(ctx context.Context, in *CreateSaasRequest, opts ...grpc.CallOption) (*Saas, error) { + out := new(Saas) + err := c.cc.Invoke(ctx, SaasDeployments_CreateSaas_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateSaas(ctx context.Context, in *UpdateSaasRequest, opts ...grpc.CallOption) (*Saas, error) { + out := new(Saas) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateSaas_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteSaas(ctx context.Context, in *DeleteSaasRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteSaas_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) ListTenants(ctx context.Context, in *ListTenantsRequest, opts ...grpc.CallOption) (*ListTenantsResponse, error) { + out := new(ListTenantsResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListTenants_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetTenant(ctx context.Context, in *GetTenantRequest, opts ...grpc.CallOption) (*Tenant, error) { + out := new(Tenant) + err := c.cc.Invoke(ctx, SaasDeployments_GetTenant_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateTenant(ctx context.Context, in *CreateTenantRequest, opts ...grpc.CallOption) (*Tenant, error) { + out := new(Tenant) + err := c.cc.Invoke(ctx, SaasDeployments_CreateTenant_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateTenant(ctx context.Context, in *UpdateTenantRequest, opts ...grpc.CallOption) (*Tenant, error) { + out := new(Tenant) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateTenant_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteTenant(ctx context.Context, in *DeleteTenantRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteTenant_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) ListUnitKinds(ctx context.Context, in *ListUnitKindsRequest, opts ...grpc.CallOption) (*ListUnitKindsResponse, error) { + out := new(ListUnitKindsResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListUnitKinds_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetUnitKind(ctx context.Context, in *GetUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) { + out := new(UnitKind) + err := c.cc.Invoke(ctx, SaasDeployments_GetUnitKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateUnitKind(ctx context.Context, in *CreateUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) { + out := new(UnitKind) + err := c.cc.Invoke(ctx, SaasDeployments_CreateUnitKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateUnitKind(ctx context.Context, in *UpdateUnitKindRequest, opts ...grpc.CallOption) (*UnitKind, error) { + out := new(UnitKind) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateUnitKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteUnitKind(ctx context.Context, in *DeleteUnitKindRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteUnitKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) ListUnits(ctx context.Context, in *ListUnitsRequest, opts ...grpc.CallOption) (*ListUnitsResponse, error) { + out := new(ListUnitsResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListUnits_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetUnit(ctx context.Context, in *GetUnitRequest, opts ...grpc.CallOption) (*Unit, error) { + out := new(Unit) + err := c.cc.Invoke(ctx, SaasDeployments_GetUnit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateUnit(ctx context.Context, in *CreateUnitRequest, opts ...grpc.CallOption) (*Unit, error) { + out := new(Unit) + err := c.cc.Invoke(ctx, SaasDeployments_CreateUnit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateUnit(ctx context.Context, in *UpdateUnitRequest, opts ...grpc.CallOption) (*Unit, error) { + out := new(Unit) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateUnit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteUnit(ctx context.Context, in *DeleteUnitRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteUnit_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) ListUnitOperations(ctx context.Context, in *ListUnitOperationsRequest, opts ...grpc.CallOption) (*ListUnitOperationsResponse, error) { + out := new(ListUnitOperationsResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListUnitOperations_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetUnitOperation(ctx context.Context, in *GetUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) { + out := new(UnitOperation) + err := c.cc.Invoke(ctx, SaasDeployments_GetUnitOperation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateUnitOperation(ctx context.Context, in *CreateUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) { + out := new(UnitOperation) + err := c.cc.Invoke(ctx, SaasDeployments_CreateUnitOperation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateUnitOperation(ctx context.Context, in *UpdateUnitOperationRequest, opts ...grpc.CallOption) (*UnitOperation, error) { + out := new(UnitOperation) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateUnitOperation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteUnitOperation(ctx context.Context, in *DeleteUnitOperationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteUnitOperation_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) ListReleases(ctx context.Context, in *ListReleasesRequest, opts ...grpc.CallOption) (*ListReleasesResponse, error) { + out := new(ListReleasesResponse) + err := c.cc.Invoke(ctx, SaasDeployments_ListReleases_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) GetRelease(ctx context.Context, in *GetReleaseRequest, opts ...grpc.CallOption) (*Release, error) { + out := new(Release) + err := c.cc.Invoke(ctx, SaasDeployments_GetRelease_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) CreateRelease(ctx context.Context, in *CreateReleaseRequest, opts ...grpc.CallOption) (*Release, error) { + out := new(Release) + err := c.cc.Invoke(ctx, SaasDeployments_CreateRelease_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) UpdateRelease(ctx context.Context, in *UpdateReleaseRequest, opts ...grpc.CallOption) (*Release, error) { + out := new(Release) + err := c.cc.Invoke(ctx, SaasDeployments_UpdateRelease_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasDeploymentsClient) DeleteRelease(ctx context.Context, in *DeleteReleaseRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasDeployments_DeleteRelease_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SaasDeploymentsServer is the server API for SaasDeployments service. +// All implementations should embed UnimplementedSaasDeploymentsServer +// for forward compatibility +type SaasDeploymentsServer interface { + // Retrieve a collection of saas. + ListSaas(context.Context, *ListSaasRequest) (*ListSaasResponse, error) + // Retrieve a single saas. + GetSaas(context.Context, *GetSaasRequest) (*Saas, error) + // Create a new saas. + CreateSaas(context.Context, *CreateSaasRequest) (*Saas, error) + // Update a single saas. + UpdateSaas(context.Context, *UpdateSaasRequest) (*Saas, error) + // Delete a single saas. + DeleteSaas(context.Context, *DeleteSaasRequest) (*emptypb.Empty, error) + // Retrieve a collection of tenants. + ListTenants(context.Context, *ListTenantsRequest) (*ListTenantsResponse, error) + // Retrieve a single tenant. + GetTenant(context.Context, *GetTenantRequest) (*Tenant, error) + // Create a new tenant. + CreateTenant(context.Context, *CreateTenantRequest) (*Tenant, error) + // Update a single tenant. + UpdateTenant(context.Context, *UpdateTenantRequest) (*Tenant, error) + // Delete a single tenant. + DeleteTenant(context.Context, *DeleteTenantRequest) (*emptypb.Empty, error) + // Retrieve a collection of unit kinds. + ListUnitKinds(context.Context, *ListUnitKindsRequest) (*ListUnitKindsResponse, error) + // Retrieve a single unit kind. + GetUnitKind(context.Context, *GetUnitKindRequest) (*UnitKind, error) + // Create a new unit kind. + CreateUnitKind(context.Context, *CreateUnitKindRequest) (*UnitKind, error) + // Update a single unit kind. + UpdateUnitKind(context.Context, *UpdateUnitKindRequest) (*UnitKind, error) + // Delete a single unit kind. + DeleteUnitKind(context.Context, *DeleteUnitKindRequest) (*emptypb.Empty, error) + // Retrieve a collection of units. + ListUnits(context.Context, *ListUnitsRequest) (*ListUnitsResponse, error) + // Retrieve a single unit. + GetUnit(context.Context, *GetUnitRequest) (*Unit, error) + // Create a new unit. + CreateUnit(context.Context, *CreateUnitRequest) (*Unit, error) + // Update a single unit. + UpdateUnit(context.Context, *UpdateUnitRequest) (*Unit, error) + // Delete a single unit. + DeleteUnit(context.Context, *DeleteUnitRequest) (*emptypb.Empty, error) + // Retrieve a collection of unit operations. + ListUnitOperations(context.Context, *ListUnitOperationsRequest) (*ListUnitOperationsResponse, error) + // Retrieve a single unit operation. + GetUnitOperation(context.Context, *GetUnitOperationRequest) (*UnitOperation, error) + // Create a new unit operation. + CreateUnitOperation(context.Context, *CreateUnitOperationRequest) (*UnitOperation, error) + // Update a single unit operation. + UpdateUnitOperation(context.Context, *UpdateUnitOperationRequest) (*UnitOperation, error) + // Delete a single unit operation. + DeleteUnitOperation(context.Context, *DeleteUnitOperationRequest) (*emptypb.Empty, error) + // Retrieve a collection of releases. + ListReleases(context.Context, *ListReleasesRequest) (*ListReleasesResponse, error) + // Retrieve a single release. + GetRelease(context.Context, *GetReleaseRequest) (*Release, error) + // Create a new release. + CreateRelease(context.Context, *CreateReleaseRequest) (*Release, error) + // Update a single release. + UpdateRelease(context.Context, *UpdateReleaseRequest) (*Release, error) + // Delete a single release. + DeleteRelease(context.Context, *DeleteReleaseRequest) (*emptypb.Empty, error) +} + +// UnimplementedSaasDeploymentsServer should be embedded to have forward compatible implementations. +type UnimplementedSaasDeploymentsServer struct { +} + +func (UnimplementedSaasDeploymentsServer) ListSaas(context.Context, *ListSaasRequest) (*ListSaasResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSaas not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetSaas(context.Context, *GetSaasRequest) (*Saas, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSaas not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateSaas(context.Context, *CreateSaasRequest) (*Saas, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSaas not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateSaas(context.Context, *UpdateSaasRequest) (*Saas, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSaas not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteSaas(context.Context, *DeleteSaasRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSaas not implemented") +} +func (UnimplementedSaasDeploymentsServer) ListTenants(context.Context, *ListTenantsRequest) (*ListTenantsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListTenants not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetTenant(context.Context, *GetTenantRequest) (*Tenant, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTenant not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateTenant(context.Context, *CreateTenantRequest) (*Tenant, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateTenant not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateTenant(context.Context, *UpdateTenantRequest) (*Tenant, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateTenant not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteTenant(context.Context, *DeleteTenantRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteTenant not implemented") +} +func (UnimplementedSaasDeploymentsServer) ListUnitKinds(context.Context, *ListUnitKindsRequest) (*ListUnitKindsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUnitKinds not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetUnitKind(context.Context, *GetUnitKindRequest) (*UnitKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUnitKind not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateUnitKind(context.Context, *CreateUnitKindRequest) (*UnitKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateUnitKind not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateUnitKind(context.Context, *UpdateUnitKindRequest) (*UnitKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUnitKind not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteUnitKind(context.Context, *DeleteUnitKindRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUnitKind not implemented") +} +func (UnimplementedSaasDeploymentsServer) ListUnits(context.Context, *ListUnitsRequest) (*ListUnitsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUnits not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetUnit(context.Context, *GetUnitRequest) (*Unit, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUnit not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateUnit(context.Context, *CreateUnitRequest) (*Unit, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateUnit not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateUnit(context.Context, *UpdateUnitRequest) (*Unit, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUnit not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteUnit(context.Context, *DeleteUnitRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUnit not implemented") +} +func (UnimplementedSaasDeploymentsServer) ListUnitOperations(context.Context, *ListUnitOperationsRequest) (*ListUnitOperationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListUnitOperations not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetUnitOperation(context.Context, *GetUnitOperationRequest) (*UnitOperation, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUnitOperation not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateUnitOperation(context.Context, *CreateUnitOperationRequest) (*UnitOperation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateUnitOperation not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateUnitOperation(context.Context, *UpdateUnitOperationRequest) (*UnitOperation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUnitOperation not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteUnitOperation(context.Context, *DeleteUnitOperationRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUnitOperation not implemented") +} +func (UnimplementedSaasDeploymentsServer) ListReleases(context.Context, *ListReleasesRequest) (*ListReleasesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListReleases not implemented") +} +func (UnimplementedSaasDeploymentsServer) GetRelease(context.Context, *GetReleaseRequest) (*Release, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRelease not implemented") +} +func (UnimplementedSaasDeploymentsServer) CreateRelease(context.Context, *CreateReleaseRequest) (*Release, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRelease not implemented") +} +func (UnimplementedSaasDeploymentsServer) UpdateRelease(context.Context, *UpdateReleaseRequest) (*Release, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRelease not implemented") +} +func (UnimplementedSaasDeploymentsServer) DeleteRelease(context.Context, *DeleteReleaseRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteRelease not implemented") +} + +// UnsafeSaasDeploymentsServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SaasDeploymentsServer will +// result in compilation errors. +type UnsafeSaasDeploymentsServer interface { + mustEmbedUnimplementedSaasDeploymentsServer() +} + +func RegisterSaasDeploymentsServer(s grpc.ServiceRegistrar, srv SaasDeploymentsServer) { + s.RegisterService(&SaasDeployments_ServiceDesc, srv) +} + +func _SaasDeployments_ListSaas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSaasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListSaas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListSaas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListSaas(ctx, req.(*ListSaasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetSaas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSaasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetSaas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetSaas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetSaas(ctx, req.(*GetSaasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateSaas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSaasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateSaas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateSaas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateSaas(ctx, req.(*CreateSaasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateSaas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSaasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateSaas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateSaas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateSaas(ctx, req.(*UpdateSaasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteSaas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSaasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteSaas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteSaas_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteSaas(ctx, req.(*DeleteSaasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_ListTenants_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListTenantsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListTenants(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListTenants_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListTenants(ctx, req.(*ListTenantsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetTenant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTenantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetTenant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetTenant_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetTenant(ctx, req.(*GetTenantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateTenant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTenantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateTenant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateTenant_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateTenant(ctx, req.(*CreateTenantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateTenant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateTenantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateTenant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateTenant_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateTenant(ctx, req.(*UpdateTenantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteTenant_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTenantRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteTenant(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteTenant_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteTenant(ctx, req.(*DeleteTenantRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_ListUnitKinds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUnitKindsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListUnitKinds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListUnitKinds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListUnitKinds(ctx, req.(*ListUnitKindsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetUnitKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUnitKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetUnitKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetUnitKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetUnitKind(ctx, req.(*GetUnitKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateUnitKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateUnitKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateUnitKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateUnitKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateUnitKind(ctx, req.(*CreateUnitKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateUnitKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUnitKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateUnitKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateUnitKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateUnitKind(ctx, req.(*UpdateUnitKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteUnitKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUnitKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteUnitKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteUnitKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteUnitKind(ctx, req.(*DeleteUnitKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_ListUnits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUnitsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListUnits(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListUnits_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListUnits(ctx, req.(*ListUnitsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUnitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetUnit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetUnit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetUnit(ctx, req.(*GetUnitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateUnitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateUnit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateUnit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateUnit(ctx, req.(*CreateUnitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUnitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateUnit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateUnit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateUnit(ctx, req.(*UpdateUnitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteUnit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUnitRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteUnit(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteUnit_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteUnit(ctx, req.(*DeleteUnitRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_ListUnitOperations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListUnitOperationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListUnitOperations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListUnitOperations_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListUnitOperations(ctx, req.(*ListUnitOperationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetUnitOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUnitOperationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetUnitOperation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetUnitOperation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetUnitOperation(ctx, req.(*GetUnitOperationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateUnitOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateUnitOperationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateUnitOperation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateUnitOperation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateUnitOperation(ctx, req.(*CreateUnitOperationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateUnitOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateUnitOperationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateUnitOperation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateUnitOperation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateUnitOperation(ctx, req.(*UpdateUnitOperationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteUnitOperation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUnitOperationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteUnitOperation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteUnitOperation_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteUnitOperation(ctx, req.(*DeleteUnitOperationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_ListReleases_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListReleasesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).ListReleases(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_ListReleases_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).ListReleases(ctx, req.(*ListReleasesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_GetRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).GetRelease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_GetRelease_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).GetRelease(ctx, req.(*GetReleaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_CreateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).CreateRelease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_CreateRelease_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).CreateRelease(ctx, req.(*CreateReleaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_UpdateRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).UpdateRelease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_UpdateRelease_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).UpdateRelease(ctx, req.(*UpdateReleaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasDeployments_DeleteRelease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteReleaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasDeploymentsServer).DeleteRelease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasDeployments_DeleteRelease_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasDeploymentsServer).DeleteRelease(ctx, req.(*DeleteReleaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// SaasDeployments_ServiceDesc is the grpc.ServiceDesc for SaasDeployments service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var SaasDeployments_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasDeployments", + HandlerType: (*SaasDeploymentsServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListSaas", + Handler: _SaasDeployments_ListSaas_Handler, + }, + { + MethodName: "GetSaas", + Handler: _SaasDeployments_GetSaas_Handler, + }, + { + MethodName: "CreateSaas", + Handler: _SaasDeployments_CreateSaas_Handler, + }, + { + MethodName: "UpdateSaas", + Handler: _SaasDeployments_UpdateSaas_Handler, + }, + { + MethodName: "DeleteSaas", + Handler: _SaasDeployments_DeleteSaas_Handler, + }, + { + MethodName: "ListTenants", + Handler: _SaasDeployments_ListTenants_Handler, + }, + { + MethodName: "GetTenant", + Handler: _SaasDeployments_GetTenant_Handler, + }, + { + MethodName: "CreateTenant", + Handler: _SaasDeployments_CreateTenant_Handler, + }, + { + MethodName: "UpdateTenant", + Handler: _SaasDeployments_UpdateTenant_Handler, + }, + { + MethodName: "DeleteTenant", + Handler: _SaasDeployments_DeleteTenant_Handler, + }, + { + MethodName: "ListUnitKinds", + Handler: _SaasDeployments_ListUnitKinds_Handler, + }, + { + MethodName: "GetUnitKind", + Handler: _SaasDeployments_GetUnitKind_Handler, + }, + { + MethodName: "CreateUnitKind", + Handler: _SaasDeployments_CreateUnitKind_Handler, + }, + { + MethodName: "UpdateUnitKind", + Handler: _SaasDeployments_UpdateUnitKind_Handler, + }, + { + MethodName: "DeleteUnitKind", + Handler: _SaasDeployments_DeleteUnitKind_Handler, + }, + { + MethodName: "ListUnits", + Handler: _SaasDeployments_ListUnits_Handler, + }, + { + MethodName: "GetUnit", + Handler: _SaasDeployments_GetUnit_Handler, + }, + { + MethodName: "CreateUnit", + Handler: _SaasDeployments_CreateUnit_Handler, + }, + { + MethodName: "UpdateUnit", + Handler: _SaasDeployments_UpdateUnit_Handler, + }, + { + MethodName: "DeleteUnit", + Handler: _SaasDeployments_DeleteUnit_Handler, + }, + { + MethodName: "ListUnitOperations", + Handler: _SaasDeployments_ListUnitOperations_Handler, + }, + { + MethodName: "GetUnitOperation", + Handler: _SaasDeployments_GetUnitOperation_Handler, + }, + { + MethodName: "CreateUnitOperation", + Handler: _SaasDeployments_CreateUnitOperation_Handler, + }, + { + MethodName: "UpdateUnitOperation", + Handler: _SaasDeployments_UpdateUnitOperation_Handler, + }, + { + MethodName: "DeleteUnitOperation", + Handler: _SaasDeployments_DeleteUnitOperation_Handler, + }, + { + MethodName: "ListReleases", + Handler: _SaasDeployments_ListReleases_Handler, + }, + { + MethodName: "GetRelease", + Handler: _SaasDeployments_GetRelease_Handler, + }, + { + MethodName: "CreateRelease", + Handler: _SaasDeployments_CreateRelease_Handler, + }, + { + MethodName: "UpdateRelease", + Handler: _SaasDeployments_UpdateRelease_Handler, + }, + { + MethodName: "DeleteRelease", + Handler: _SaasDeployments_DeleteRelease_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/saasplatform/saasservicemgmt/v1beta1/deployments_service.proto", +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_resources.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_resources.pb.go new file mode 100644 index 000000000000..9b3fc737a3c1 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_resources.pb.go @@ -0,0 +1,1328 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/rollouts_resources.proto + +package saasservicemgmtpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + 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) +) + +// RolloutAction indicates the action to be performed on the Rollout. +type RolloutAction int32 + +const ( + // Unspecified action, will be treated as RUN by default. + RolloutAction_ROLLOUT_ACTION_UNSPECIFIED RolloutAction = 0 + // Run the Rollout until it naturally reaches a terminal state. + // A rollout requested to run will progress through all natural Rollout + // States (such as RUNNING -> SUCCEEDED or RUNNING -> FAILED). + // If retriable errors are encountered during the rollout, the rollout + // will paused by default and can be resumed by re-requesting this RUN + // action. + RolloutAction_ROLLOUT_ACTION_RUN RolloutAction = 1 + // Pause the Rollout until it is resumed (i.e. RUN is requested). + RolloutAction_ROLLOUT_ACTION_PAUSE RolloutAction = 2 + // Cancel the Rollout permanently. + RolloutAction_ROLLOUT_ACTION_CANCEL RolloutAction = 3 +) + +// Enum value maps for RolloutAction. +var ( + RolloutAction_name = map[int32]string{ + 0: "ROLLOUT_ACTION_UNSPECIFIED", + 1: "ROLLOUT_ACTION_RUN", + 2: "ROLLOUT_ACTION_PAUSE", + 3: "ROLLOUT_ACTION_CANCEL", + } + RolloutAction_value = map[string]int32{ + "ROLLOUT_ACTION_UNSPECIFIED": 0, + "ROLLOUT_ACTION_RUN": 1, + "ROLLOUT_ACTION_PAUSE": 2, + "ROLLOUT_ACTION_CANCEL": 3, + } +) + +func (x RolloutAction) Enum() *RolloutAction { + p := new(RolloutAction) + *p = x + return p +} + +func (x RolloutAction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RolloutAction) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[0].Descriptor() +} + +func (RolloutAction) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[0] +} + +func (x RolloutAction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RolloutAction.Descriptor instead. +func (RolloutAction) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{0} +} + +// The current state of the rollout. +type Rollout_RolloutState int32 + +const ( + // Unspecified state. + Rollout_ROLLOUT_STATE_UNSPECIFIED Rollout_RolloutState = 0 + // Rollout is in progress. + Rollout_ROLLOUT_STATE_RUNNING Rollout_RolloutState = 1 + // Rollout has been paused. + Rollout_ROLLOUT_STATE_PAUSED Rollout_RolloutState = 2 + // Rollout completed successfully. + Rollout_ROLLOUT_STATE_SUCCEEDED Rollout_RolloutState = 3 + // Rollout has failed. + Rollout_ROLLOUT_STATE_FAILED Rollout_RolloutState = 4 + // Rollout has been canceled. + Rollout_ROLLOUT_STATE_CANCELLED Rollout_RolloutState = 5 + // Rollout is waiting for some condition to be met before starting. + Rollout_ROLLOUT_STATE_WAITING Rollout_RolloutState = 6 + // Rollout is being canceled. + Rollout_ROLLOUT_STATE_CANCELLING Rollout_RolloutState = 7 + // Rollout is being resumed. + Rollout_ROLLOUT_STATE_RESUMING Rollout_RolloutState = 8 + // Rollout is being paused. + Rollout_ROLLOUT_STATE_PAUSING Rollout_RolloutState = 9 +) + +// Enum value maps for Rollout_RolloutState. +var ( + Rollout_RolloutState_name = map[int32]string{ + 0: "ROLLOUT_STATE_UNSPECIFIED", + 1: "ROLLOUT_STATE_RUNNING", + 2: "ROLLOUT_STATE_PAUSED", + 3: "ROLLOUT_STATE_SUCCEEDED", + 4: "ROLLOUT_STATE_FAILED", + 5: "ROLLOUT_STATE_CANCELLED", + 6: "ROLLOUT_STATE_WAITING", + 7: "ROLLOUT_STATE_CANCELLING", + 8: "ROLLOUT_STATE_RESUMING", + 9: "ROLLOUT_STATE_PAUSING", + } + Rollout_RolloutState_value = map[string]int32{ + "ROLLOUT_STATE_UNSPECIFIED": 0, + "ROLLOUT_STATE_RUNNING": 1, + "ROLLOUT_STATE_PAUSED": 2, + "ROLLOUT_STATE_SUCCEEDED": 3, + "ROLLOUT_STATE_FAILED": 4, + "ROLLOUT_STATE_CANCELLED": 5, + "ROLLOUT_STATE_WAITING": 6, + "ROLLOUT_STATE_CANCELLING": 7, + "ROLLOUT_STATE_RESUMING": 8, + "ROLLOUT_STATE_PAUSING": 9, + } +) + +func (x Rollout_RolloutState) Enum() *Rollout_RolloutState { + p := new(Rollout_RolloutState) + *p = x + return p +} + +func (x Rollout_RolloutState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Rollout_RolloutState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[1].Descriptor() +} + +func (Rollout_RolloutState) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[1] +} + +func (x Rollout_RolloutState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Rollout_RolloutState.Descriptor instead. +func (Rollout_RolloutState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{0, 0} +} + +type RolloutKind_UpdateUnitKindStrategy int32 + +const ( + // Strategy unspecified. + RolloutKind_UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED RolloutKind_UpdateUnitKindStrategy = 0 + // Update the unit kind strategy on the rollout start. + RolloutKind_UPDATE_UNIT_KIND_STRATEGY_ON_START RolloutKind_UpdateUnitKindStrategy = 1 + // Never update the unit kind. + RolloutKind_UPDATE_UNIT_KIND_STRATEGY_NEVER RolloutKind_UpdateUnitKindStrategy = 2 +) + +// Enum value maps for RolloutKind_UpdateUnitKindStrategy. +var ( + RolloutKind_UpdateUnitKindStrategy_name = map[int32]string{ + 0: "UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED", + 1: "UPDATE_UNIT_KIND_STRATEGY_ON_START", + 2: "UPDATE_UNIT_KIND_STRATEGY_NEVER", + } + RolloutKind_UpdateUnitKindStrategy_value = map[string]int32{ + "UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED": 0, + "UPDATE_UNIT_KIND_STRATEGY_ON_START": 1, + "UPDATE_UNIT_KIND_STRATEGY_NEVER": 2, + } +) + +func (x RolloutKind_UpdateUnitKindStrategy) Enum() *RolloutKind_UpdateUnitKindStrategy { + p := new(RolloutKind_UpdateUnitKindStrategy) + *p = x + return p +} + +func (x RolloutKind_UpdateUnitKindStrategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RolloutKind_UpdateUnitKindStrategy) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[2].Descriptor() +} + +func (RolloutKind_UpdateUnitKindStrategy) Type() protoreflect.EnumType { + return &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes[2] +} + +func (x RolloutKind_UpdateUnitKindStrategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RolloutKind_UpdateUnitKindStrategy.Descriptor instead. +func (RolloutKind_UpdateUnitKindStrategy) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{1, 0} +} + +// Represents a single rollout execution and its results +type Rollout struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/rollout/{rollout_id}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Immutable. Name of the Release that gets rolled out to target + // Units. Required if no other type of release is specified. + Release string `protobuf:"bytes,3,opt,name=release,proto3" json:"release,omitempty"` + // Optional. Output only. The time when the rollout started executing. Will be + // empty if the rollout hasn't started yet. + StartTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // Optional. Output only. The time when the rollout finished execution + // (regardless of success, failure, or cancellation). Will be empty if the + // rollout hasn't finished yet. Once set, the rollout is in terminal state and + // all the results are final. + EndTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Current state of the rollout. + State Rollout_RolloutState `protobuf:"varint,10,opt,name=state,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout_RolloutState" json:"state,omitempty"` + // Output only. Human readable message indicating details about the last state + // transition. + StateMessage string `protobuf:"bytes,11,opt,name=state_message,json=stateMessage,proto3" json:"state_message,omitempty"` + // Optional. Output only. The time when the rollout transitioned into its + // current state. + StateTransitionTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=state_transition_time,json=stateTransitionTime,proto3" json:"state_transition_time,omitempty"` + // Optional. Output only. The root rollout that this rollout is stemming from. + // The resource name (full URI of the resource) following the standard naming + // scheme: + // + // "projects/{project}/locations/{location}/rollouts/{rollout_id}" + RootRollout string `protobuf:"bytes,16,opt,name=root_rollout,json=rootRollout,proto3" json:"root_rollout,omitempty"` + // Optional. Output only. The direct parent rollout that this rollout is + // stemming from. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/rollouts/{rollout_id}" + ParentRollout string `protobuf:"bytes,17,opt,name=parent_rollout,json=parentRollout,proto3" json:"parent_rollout,omitempty"` + // Optional. The strategy used for executing this Rollout. + // This strategy will override whatever strategy is specified in the + // RolloutType. If not specified on creation, the + // strategy from RolloutType will be used. + // + // There are two supported values strategies which are used to control + // - "Google.Cloud.Simple.AllAtOnce" + // - "Google.Cloud.Simple.OneLocationAtATime" + // + // A rollout with one of these simple strategies will rollout across + // all locations defined in the targeted UnitKind's Saas Locations. + RolloutOrchestrationStrategy string `protobuf:"bytes,19,opt,name=rollout_orchestration_strategy,json=rolloutOrchestrationStrategy,proto3" json:"rollout_orchestration_strategy,omitempty"` + // Optional. CEL(https://github.com/google/cel-spec) formatted filter string + // against Unit. The filter will be applied to determine the eligible unit + // population. This filter can only reduce, but not expand the scope of the + // rollout. If not provided, the unit_filter from the RolloutType will be + // used. + UnitFilter string `protobuf:"bytes,21,opt,name=unit_filter,json=unitFilter,proto3" json:"unit_filter,omitempty"` + // Optional. Immutable. Name of the RolloutKind this rollout is stemming from + // and adhering to. + RolloutKind string `protobuf:"bytes,22,opt,name=rollout_kind,json=rolloutKind,proto3" json:"rollout_kind,omitempty"` + // Optional. Output only. Details about the progress of the rollout. + Stats *RolloutStats `protobuf:"bytes,24,opt,name=stats,proto3" json:"stats,omitempty"` + // Optional. Requested change to the execution of this rollout. + // Default RolloutControl.action is ROLLOUT_ACTION_RUN meaning + // the rollout will be executed to completion while progressing through + // all natural Rollout States (such as RUNNING -> SUCCEEDED or RUNNING -> + // FAILED). Requests can only be made when the Rollout is in a non-terminal + // state. + Control *RolloutControl `protobuf:"bytes,25,opt,name=control,proto3" json:"control,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Rollout) Reset() { + *x = Rollout{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Rollout) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rollout) ProtoMessage() {} + +func (x *Rollout) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 Rollout.ProtoReflect.Descriptor instead. +func (*Rollout) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *Rollout) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Rollout) GetRelease() string { + if x != nil { + return x.Release + } + return "" +} + +func (x *Rollout) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *Rollout) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *Rollout) GetState() Rollout_RolloutState { + if x != nil { + return x.State + } + return Rollout_ROLLOUT_STATE_UNSPECIFIED +} + +func (x *Rollout) GetStateMessage() string { + if x != nil { + return x.StateMessage + } + return "" +} + +func (x *Rollout) GetStateTransitionTime() *timestamppb.Timestamp { + if x != nil { + return x.StateTransitionTime + } + return nil +} + +func (x *Rollout) GetRootRollout() string { + if x != nil { + return x.RootRollout + } + return "" +} + +func (x *Rollout) GetParentRollout() string { + if x != nil { + return x.ParentRollout + } + return "" +} + +func (x *Rollout) GetRolloutOrchestrationStrategy() string { + if x != nil { + return x.RolloutOrchestrationStrategy + } + return "" +} + +func (x *Rollout) GetUnitFilter() string { + if x != nil { + return x.UnitFilter + } + return "" +} + +func (x *Rollout) GetRolloutKind() string { + if x != nil { + return x.RolloutKind + } + return "" +} + +func (x *Rollout) GetStats() *RolloutStats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *Rollout) GetControl() *RolloutControl { + if x != nil { + return x.Control + } + return nil +} + +func (x *Rollout) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Rollout) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Rollout) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Rollout) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Rollout) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Rollout) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// An object that describes various settings of Rollout execution. Includes +// built-in policies across GCP and GDC, and customizable policies. +type RolloutKind struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The resource name (full URI of the resource) following the + // standard naming scheme: + // + // "projects/{project}/locations/{location}/rolloutKinds/{rollout_kind_id}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Immutable. UnitKind that this rollout kind corresponds to. + // Rollouts stemming from this rollout kind will target the units of this unit + // kind. In other words, this defines the population of target units to be + // upgraded by rollouts. + UnitKind string `protobuf:"bytes,2,opt,name=unit_kind,json=unitKind,proto3" json:"unit_kind,omitempty"` + // Optional. The strategy used for executing a Rollout. This is a required + // field. + // + // There are two supported values strategies which are used to control + // - "Google.Cloud.Simple.AllAtOnce" + // - "Google.Cloud.Simple.OneLocationAtATime" + // + // A rollout with one of these simple strategies will rollout across + // all locations defined in the associated UnitKind's Saas Locations. + RolloutOrchestrationStrategy string `protobuf:"bytes,3,opt,name=rollout_orchestration_strategy,json=rolloutOrchestrationStrategy,proto3" json:"rollout_orchestration_strategy,omitempty"` + // Optional. CEL(https://github.com/google/cel-spec) formatted filter string + // against Unit. The filter will be applied to determine the eligible unit + // population. This filter can only reduce, but not expand the scope of the + // rollout. + UnitFilter string `protobuf:"bytes,5,opt,name=unit_filter,json=unitFilter,proto3" json:"unit_filter,omitempty"` + // Optional. The config for updating the unit kind. By default, the unit kind + // will be updated on the rollout start. + UpdateUnitKindStrategy RolloutKind_UpdateUnitKindStrategy `protobuf:"varint,6,opt,name=update_unit_kind_strategy,json=updateUnitKindStrategy,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind_UpdateUnitKindStrategy" json:"update_unit_kind_strategy,omitempty"` + // Optional. The configuration for error budget. If the number of failed units + // exceeds max(allowed_count, allowed_ratio * total_units), the rollout will + // be paused. If not set, all units will be attempted to be updated regardless + // of the number of failures encountered. + ErrorBudget *ErrorBudget `protobuf:"bytes,7,opt,name=error_budget,json=errorBudget,proto3,oneof" json:"error_budget,omitempty"` + // Optional. The labels on the resource, which can be used for categorization. + // similar to Kubernetes resource labels. + Labels map[string]string `protobuf:"bytes,10401,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Annotations is an unstructured key-value map stored with a + // resource that may be set by external tools to store and retrieve arbitrary + // metadata. They are not queryable and should be preserved when modifying + // objects. + // + // More info: https://kubernetes.io/docs/user-guide/annotations + Annotations map[string]string `protobuf:"bytes,10402,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The unique identifier of the resource. UID is unique in the + // time and space for this resource within the scope of the service. It is + // typically generated by the server on successful creation of a resource + // and must not be changed. UID is used to uniquely identify resources + // with resource name reuses. This should be a UUID4. + Uid string `protobuf:"bytes,10201,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. An opaque value that uniquely identifies a version or + // generation of a resource. It can be used to confirm that the client + // and server agree on the ordering of a resource being written. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // Output only. The timestamp when the resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,10303,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The timestamp when the resource was last updated. Any + // change to the resource made by users must refresh this value. + // Changes to a resource made by the service should refresh this value. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10304,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *RolloutKind) Reset() { + *x = RolloutKind{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RolloutKind) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RolloutKind) ProtoMessage() {} + +func (x *RolloutKind) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 RolloutKind.ProtoReflect.Descriptor instead. +func (*RolloutKind) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *RolloutKind) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RolloutKind) GetUnitKind() string { + if x != nil { + return x.UnitKind + } + return "" +} + +func (x *RolloutKind) GetRolloutOrchestrationStrategy() string { + if x != nil { + return x.RolloutOrchestrationStrategy + } + return "" +} + +func (x *RolloutKind) GetUnitFilter() string { + if x != nil { + return x.UnitFilter + } + return "" +} + +func (x *RolloutKind) GetUpdateUnitKindStrategy() RolloutKind_UpdateUnitKindStrategy { + if x != nil { + return x.UpdateUnitKindStrategy + } + return RolloutKind_UPDATE_UNIT_KIND_STRATEGY_UNSPECIFIED +} + +func (x *RolloutKind) GetErrorBudget() *ErrorBudget { + if x != nil { + return x.ErrorBudget + } + return nil +} + +func (x *RolloutKind) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *RolloutKind) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *RolloutKind) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *RolloutKind) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *RolloutKind) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *RolloutKind) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// The configuration for error budget. If the number of failed units exceeds +// max(allowed_count, allowed_ratio * total_units), the rollout will be paused. +type ErrorBudget struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The maximum number of failed units allowed in a location without + // pausing the rollout. + AllowedCount int32 `protobuf:"varint,1,opt,name=allowed_count,json=allowedCount,proto3" json:"allowed_count,omitempty"` + // Optional. The maximum percentage of units allowed to fail (0, 100] within a + // location without pausing the rollout. + AllowedPercentage int32 `protobuf:"varint,2,opt,name=allowed_percentage,json=allowedPercentage,proto3" json:"allowed_percentage,omitempty"` +} + +func (x *ErrorBudget) Reset() { + *x = ErrorBudget{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ErrorBudget) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ErrorBudget) ProtoMessage() {} + +func (x *ErrorBudget) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 ErrorBudget.ProtoReflect.Descriptor instead. +func (*ErrorBudget) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *ErrorBudget) GetAllowedCount() int32 { + if x != nil { + return x.AllowedCount + } + return 0 +} + +func (x *ErrorBudget) GetAllowedPercentage() int32 { + if x != nil { + return x.AllowedPercentage + } + return 0 +} + +// RolloutStats contains information about the progress of a rollout. +type RolloutStats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. A breakdown of the progress of operations triggered by the + // rollout. Provides a count of Operations by their state. This can be used to + // determine the number of units which have been updated, or are scheduled to + // be updated. + // + // There will be at most one entry per group. + // Possible values for operation groups are: + // - "SCHEDULED" + // - "PENDING" + // - "RUNNING" + // - "SUCCEEDED" + // - "FAILED" + // - "CANCELLED" + OperationsByState []*Aggregate `protobuf:"bytes,2,rep,name=operations_by_state,json=operationsByState,proto3" json:"operations_by_state,omitempty"` +} + +func (x *RolloutStats) Reset() { + *x = RolloutStats{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RolloutStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RolloutStats) ProtoMessage() {} + +func (x *RolloutStats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 RolloutStats.ProtoReflect.Descriptor instead. +func (*RolloutStats) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{3} +} + +func (x *RolloutStats) GetOperationsByState() []*Aggregate { + if x != nil { + return x.OperationsByState + } + return nil +} + +// RolloutControl provides a way to request a change to the execution of a +// Rollout by pausing or canceling it. +type RolloutControl struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Setting for the action. The setting must match the action + // e.g.: action=RUN may only set run_params or omit all parameters. + // It is an error to set a setting that is not applicable to the action. + // + // Types that are assignable to ActionParams: + // + // *RolloutControl_RunParams + ActionParams isRolloutControl_ActionParams `protobuf_oneof:"action_params"` + // Required. Action to be performed on the Rollout. + // The default behavior is to run the rollout until it naturally reaches a + // terminal state. + Action RolloutAction `protobuf:"varint,1,opt,name=action,proto3,enum=google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutAction" json:"action,omitempty"` +} + +func (x *RolloutControl) Reset() { + *x = RolloutControl{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RolloutControl) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RolloutControl) ProtoMessage() {} + +func (x *RolloutControl) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 RolloutControl.ProtoReflect.Descriptor instead. +func (*RolloutControl) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{4} +} + +func (m *RolloutControl) GetActionParams() isRolloutControl_ActionParams { + if m != nil { + return m.ActionParams + } + return nil +} + +func (x *RolloutControl) GetRunParams() *RolloutControl_RunRolloutActionParams { + if x, ok := x.GetActionParams().(*RolloutControl_RunParams); ok { + return x.RunParams + } + return nil +} + +func (x *RolloutControl) GetAction() RolloutAction { + if x != nil { + return x.Action + } + return RolloutAction_ROLLOUT_ACTION_UNSPECIFIED +} + +type isRolloutControl_ActionParams interface { + isRolloutControl_ActionParams() +} + +type RolloutControl_RunParams struct { + // Optional. Parameters for the RUN action. It is an error to specify this + // if the RolloutAction is not set to RUN. By default, the rollout will + // retry failed operations when resumed. + RunParams *RolloutControl_RunRolloutActionParams `protobuf:"bytes,2,opt,name=run_params,json=runParams,proto3,oneof"` +} + +func (*RolloutControl_RunParams) isRolloutControl_ActionParams() {} + +// Parameters for the RUN action controlling the behavior of the rollout +// when it is resumed from a PAUSED state. +type RolloutControl_RunRolloutActionParams struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. If true, the rollout will retry failed operations when resumed. + // This is applicable only the current state of the Rollout is PAUSED and + // the requested action is RUN. + RetryFailedOperations bool `protobuf:"varint,1,opt,name=retry_failed_operations,json=retryFailedOperations,proto3" json:"retry_failed_operations,omitempty"` +} + +func (x *RolloutControl_RunRolloutActionParams) Reset() { + *x = RolloutControl_RunRolloutActionParams{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RolloutControl_RunRolloutActionParams) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RolloutControl_RunRolloutActionParams) ProtoMessage() {} + +func (x *RolloutControl_RunRolloutActionParams) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_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 RolloutControl_RunRolloutActionParams.ProtoReflect.Descriptor instead. +func (*RolloutControl_RunRolloutActionParams) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP(), []int{4, 0} +} + +func (x *RolloutControl_RunRolloutActionParams) GetRetryFailedOperations() bool { + if x != nil { + return x.RetryFailedOperations + } + return false +} + +var File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDesc = []byte{ + 0x0a, 0x4a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x31, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 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, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 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, 0x3e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 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, 0xd1, 0x0f, 0x0a, 0x07, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, + 0x0a, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x31, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6c, 0x65, 0x61, + 0x73, 0x65, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x01, + 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 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, 0x06, 0xe0, 0x41, + 0x01, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x62, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x03, 0x52, 0x13, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x31, 0xe0, 0x41, 0x03, 0xe0, 0x41, + 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x0b, 0x72, 0x6f, + 0x6f, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x58, 0x0a, 0x0e, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x31, 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x12, 0x49, 0x0a, 0x1e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6f, + 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, + 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x1c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x24, + 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, + 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xe0, 0x41, 0x01, 0xe0, + 0x41, 0x05, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x5d, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x42, 0x06, + 0xe0, 0x41, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x60, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, + 0x64, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x73, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0xd9, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, + 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, + 0x65, 0x74, 0x61, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0xbf, 0x50, 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, 0x41, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa6, 0x02, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, + 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, + 0x12, 0x18, 0x0a, 0x14, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x4f, + 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x43, 0x43, + 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, + 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x19, + 0x0a, 0x15, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x4f, 0x4c, + 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, + 0x55, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x49, 0x4e, + 0x47, 0x10, 0x08, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x45, 0x5f, 0x50, 0x41, 0x55, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x3a, 0x7d, + 0xea, 0x41, 0x7a, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x3d, 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, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2f, 0x7b, 0x72, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x73, 0x32, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x22, 0xc5, 0x0a, + 0x0a, 0x0b, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x08, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xe0, 0x41, + 0x05, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x08, 0x75, + 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x49, 0x0a, 0x1e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x5f, 0x6f, 0x72, 0x63, 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4f, 0x72, 0x63, + 0x68, 0x65, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x12, 0x24, 0x0a, 0x0b, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x6e, + 0x69, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x95, 0x01, 0x0a, 0x19, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x12, 0x6b, 0x0a, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0xa1, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa2, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x1e, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0xd9, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, + 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xbf, 0x50, 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, 0x41, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0xc0, 0x50, 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, + 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x90, 0x01, 0x0a, 0x16, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x69, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x29, 0x0a, 0x25, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, + 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, + 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x26, 0x0a, 0x22, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, + 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4f, + 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x10, 0x01, 0x12, 0x23, 0x0a, 0x1f, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4b, 0x49, 0x4e, 0x44, 0x5f, 0x53, 0x54, + 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x10, 0x02, 0x3a, 0x93, + 0x01, 0xea, 0x41, 0x8f, 0x01, 0x0a, 0x2a, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x12, 0x46, 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, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x7d, 0x2a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x32, 0x0b, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x62, + 0x75, 0x64, 0x67, 0x65, 0x74, 0x22, 0x6b, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x75, + 0x64, 0x67, 0x65, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, + 0x0a, 0x12, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, + 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x11, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, + 0x67, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x0c, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x12, 0x71, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x62, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x0e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x7e, 0x0a, 0x0a, 0x72, 0x75, 0x6e, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x2e, 0x52, 0x75, 0x6e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, + 0x72, 0x75, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5d, 0x0a, 0x06, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x55, 0x0a, 0x16, 0x52, 0x75, 0x6e, 0x52, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x3b, 0x0a, 0x17, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x15, 0x72, 0x65, 0x74, 0x72, 0x79, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, + 0x0f, 0x0a, 0x0d, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2a, 0x7c, 0x0a, 0x0d, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x4f, 0x4c, + 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x41, 0x55, 0x53, + 0x45, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x4f, 0x4c, 0x4c, 0x4f, 0x55, 0x54, 0x5f, 0x41, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x10, 0x03, 0x42, 0xd6, + 0x02, 0x0a, 0x35, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x1a, 0x53, 0x61, 0x61, 0x73, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x70, 0x62, 0x3b, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, 0x62, 0xaa, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x67, 0x6d, 0x74, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x31, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, + 0x02, 0x35, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x53, + 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescOnce sync.Once + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescData = file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDesc +) + +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescGZIP() []byte { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescData) + }) + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDescData +} + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_goTypes = []any{ + (RolloutAction)(0), // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutAction + (Rollout_RolloutState)(0), // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.RolloutState + (RolloutKind_UpdateUnitKindStrategy)(0), // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.UpdateUnitKindStrategy + (*Rollout)(nil), // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + (*RolloutKind)(nil), // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + (*ErrorBudget)(nil), // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.ErrorBudget + (*RolloutStats)(nil), // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutStats + (*RolloutControl)(nil), // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl + nil, // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.LabelsEntry + nil, // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.AnnotationsEntry + nil, // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.LabelsEntry + nil, // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.AnnotationsEntry + (*RolloutControl_RunRolloutActionParams)(nil), // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl.RunRolloutActionParams + (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp + (*Aggregate)(nil), // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.Aggregate +} +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_depIdxs = []int32{ + 13, // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.start_time:type_name -> google.protobuf.Timestamp + 13, // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.end_time:type_name -> google.protobuf.Timestamp + 1, // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.state:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.RolloutState + 13, // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.state_transition_time:type_name -> google.protobuf.Timestamp + 6, // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.stats:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutStats + 7, // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.control:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl + 8, // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.LabelsEntry + 9, // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.AnnotationsEntry + 13, // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.create_time:type_name -> google.protobuf.Timestamp + 13, // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout.update_time:type_name -> google.protobuf.Timestamp + 2, // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.update_unit_kind_strategy:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.UpdateUnitKindStrategy + 5, // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.error_budget:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ErrorBudget + 10, // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.labels:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.LabelsEntry + 11, // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.annotations:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.AnnotationsEntry + 13, // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.create_time:type_name -> google.protobuf.Timestamp + 13, // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind.update_time:type_name -> google.protobuf.Timestamp + 14, // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutStats.operations_by_state:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Aggregate + 12, // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl.run_params:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl.RunRolloutActionParams + 0, // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutControl.action:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutAction + 19, // [19:19] is the sub-list for method output_type + 19, // [19:19] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name +} + +func init() { file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_init() } +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_init() { + if File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto != nil { + return + } + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_common_proto_init() + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[1].OneofWrappers = []any{} + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes[4].OneofWrappers = []any{ + (*RolloutControl_RunParams)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDesc, + NumEnums: 3, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_depIdxs, + EnumInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_enumTypes, + MessageInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_msgTypes, + }.Build() + File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto = out.File + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_rawDesc = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_goTypes = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_depIdxs = nil +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service.pb.go new file mode 100644 index 000000000000..e8994cc778be --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service.pb.go @@ -0,0 +1,1458 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/rollouts_service.proto + +package saasservicemgmtpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The request structure for the ListRollouts method. +type ListRolloutsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the rollout. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of rollouts to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRolloutsRequest) Reset() { + *x = ListRolloutsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRolloutsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRolloutsRequest) ProtoMessage() {} + +func (x *ListRolloutsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 ListRolloutsRequest.ProtoReflect.Descriptor instead. +func (*ListRolloutsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ListRolloutsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRolloutsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRolloutsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRolloutsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRolloutsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListRollouts method. +type ListRolloutsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting rollouts. + Rollouts []*Rollout `protobuf:"bytes,10509,rep,name=rollouts,proto3" json:"rollouts,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListRollouts call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRolloutsResponse) Reset() { + *x = ListRolloutsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRolloutsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRolloutsResponse) ProtoMessage() {} + +func (x *ListRolloutsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 ListRolloutsResponse.ProtoReflect.Descriptor instead. +func (*ListRolloutsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListRolloutsResponse) GetRollouts() []*Rollout { + if x != nil { + return x.Rollouts + } + return nil +} + +func (x *ListRolloutsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRolloutsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetRollout method. +type GetRolloutRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRolloutRequest) Reset() { + *x = GetRolloutRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRolloutRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRolloutRequest) ProtoMessage() {} + +func (x *GetRolloutRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 GetRolloutRequest.ProtoReflect.Descriptor instead. +func (*GetRolloutRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetRolloutRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateRollout method. +type CreateRolloutRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the rollout. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new rollout. + RolloutId string `protobuf:"bytes,10503,opt,name=rollout_id,json=rolloutId,proto3" json:"rollout_id,omitempty"` + // Required. The desired state for the rollout. + Rollout *Rollout `protobuf:"bytes,10504,opt,name=rollout,proto3" json:"rollout,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateRolloutRequest) Reset() { + *x = CreateRolloutRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateRolloutRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRolloutRequest) ProtoMessage() {} + +func (x *CreateRolloutRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 CreateRolloutRequest.ProtoReflect.Descriptor instead. +func (*CreateRolloutRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateRolloutRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateRolloutRequest) GetRolloutId() string { + if x != nil { + return x.RolloutId + } + return "" +} + +func (x *CreateRolloutRequest) GetRollout() *Rollout { + if x != nil { + return x.Rollout + } + return nil +} + +func (x *CreateRolloutRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateRolloutRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateRollout method. +type UpdateRolloutRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the rollout. + Rollout *Rollout `protobuf:"bytes,10504,opt,name=rollout,proto3" json:"rollout,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // Rollout 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. + // + // If the user does not provide a mask then all fields in the + // Rollout will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateRolloutRequest) Reset() { + *x = UpdateRolloutRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRolloutRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRolloutRequest) ProtoMessage() {} + +func (x *UpdateRolloutRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 UpdateRolloutRequest.ProtoReflect.Descriptor instead. +func (*UpdateRolloutRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateRolloutRequest) GetRollout() *Rollout { + if x != nil { + return x.Rollout + } + return nil +} + +func (x *UpdateRolloutRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateRolloutRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateRolloutRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteRollout method. +type DeleteRolloutRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the rollout. This is + // used with state-changing methods to prevent accidental overwrites when + // multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the rollout. The Any wildcard (`*`) requires that the resource + // must already exists, and the Not Any wildcard (`!*`) requires that it must + // not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteRolloutRequest) Reset() { + *x = DeleteRolloutRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRolloutRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRolloutRequest) ProtoMessage() {} + +func (x *DeleteRolloutRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 DeleteRolloutRequest.ProtoReflect.Descriptor instead. +func (*DeleteRolloutRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteRolloutRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteRolloutRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteRolloutRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteRolloutRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the ListRolloutKinds method. +type ListRolloutKindsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the rollout kind. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of rollout kinds to send per page. + PageSize int32 `protobuf:"varint,10505,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token: If the next_page_token from a previous response + // is provided, this request will send the subsequent page. + PageToken string `protobuf:"bytes,10506,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filter the list as specified in https://google.aip.dev/160. + Filter string `protobuf:"bytes,10507,opt,name=filter,proto3" json:"filter,omitempty"` + // Order results as specified in https://google.aip.dev/132. + OrderBy string `protobuf:"bytes,10508,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRolloutKindsRequest) Reset() { + *x = ListRolloutKindsRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRolloutKindsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRolloutKindsRequest) ProtoMessage() {} + +func (x *ListRolloutKindsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 ListRolloutKindsRequest.ProtoReflect.Descriptor instead. +func (*ListRolloutKindsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{6} +} + +func (x *ListRolloutKindsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRolloutKindsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRolloutKindsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRolloutKindsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRolloutKindsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response structure for the ListRolloutKinds method. +type ListRolloutKindsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resulting rollout kinds. + RolloutKinds []*RolloutKind `protobuf:"bytes,10509,rep,name=rollout_kinds,json=rolloutKinds,proto3" json:"rollout_kinds,omitempty"` + // If present, the next page token can be provided to a subsequent + // ListRolloutKinds call to list the next page. + // If empty, there are no more pages. + NextPageToken string `protobuf:"bytes,10510,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,10511,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRolloutKindsResponse) Reset() { + *x = ListRolloutKindsResponse{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRolloutKindsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRolloutKindsResponse) ProtoMessage() {} + +func (x *ListRolloutKindsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 ListRolloutKindsResponse.ProtoReflect.Descriptor instead. +func (*ListRolloutKindsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListRolloutKindsResponse) GetRolloutKinds() []*RolloutKind { + if x != nil { + return x.RolloutKinds + } + return nil +} + +func (x *ListRolloutKindsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRolloutKindsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request structure for the GetRolloutKind method. +type GetRolloutKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRolloutKindRequest) Reset() { + *x = GetRolloutKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRolloutKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRolloutKindRequest) ProtoMessage() {} + +func (x *GetRolloutKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 GetRolloutKindRequest.ProtoReflect.Descriptor instead. +func (*GetRolloutKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{8} +} + +func (x *GetRolloutKindRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request structure for the CreateRolloutKind method. +type CreateRolloutKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent of the rollout kind. + Parent string `protobuf:"bytes,10006,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID value for the new rollout kind. + RolloutKindId string `protobuf:"bytes,10503,opt,name=rollout_kind_id,json=rolloutKindId,proto3" json:"rollout_kind_id,omitempty"` + // Required. The desired state for the rollout kind. + RolloutKind *RolloutKind `protobuf:"bytes,10504,opt,name=rollout_kind,json=rolloutKind,proto3" json:"rollout_kind,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateRolloutKindRequest) Reset() { + *x = CreateRolloutKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateRolloutKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRolloutKindRequest) ProtoMessage() {} + +func (x *CreateRolloutKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 CreateRolloutKindRequest.ProtoReflect.Descriptor instead. +func (*CreateRolloutKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateRolloutKindRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateRolloutKindRequest) GetRolloutKindId() string { + if x != nil { + return x.RolloutKindId + } + return "" +} + +func (x *CreateRolloutKindRequest) GetRolloutKind() *RolloutKind { + if x != nil { + return x.RolloutKind + } + return nil +} + +func (x *CreateRolloutKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateRolloutKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request structure for the UpdateRolloutKind method. +type UpdateRolloutKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The desired state for the rollout kind. + RolloutKind *RolloutKind `protobuf:"bytes,10504,opt,name=rollout_kind,json=rolloutKind,proto3" json:"rollout_kind,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // RolloutKind 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. + // + // If the user does not provide a mask then all fields in the + // RolloutKind will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,10512,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateRolloutKindRequest) Reset() { + *x = UpdateRolloutKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateRolloutKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateRolloutKindRequest) ProtoMessage() {} + +func (x *UpdateRolloutKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 UpdateRolloutKindRequest.ProtoReflect.Descriptor instead. +func (*UpdateRolloutKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateRolloutKindRequest) GetRolloutKind() *RolloutKind { + if x != nil { + return x.RolloutKind + } + return nil +} + +func (x *UpdateRolloutKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *UpdateRolloutKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateRolloutKindRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// The request structure for the DeleteRolloutKind method. +type DeleteRolloutKindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the resource within a service. + Name string `protobuf:"bytes,10001,opt,name=name,proto3" json:"name,omitempty"` + // The etag known to the client for the expected state of the rollout kind. + // This is used with state-changing methods to prevent accidental overwrites + // when multiple user agents might be acting in parallel on the same resource. + // + // An etag wildcard provide optimistic concurrency based on the expected + // existence of the rollout kind. The Any wildcard (`*`) requires that the + // resource must already exists, and the Not Any wildcard (`!*`) requires that + // it must not. + Etag string `protobuf:"bytes,10202,opt,name=etag,proto3" json:"etag,omitempty"` + // If "validate_only" is set to true, the service will try to validate + // that this request would succeed, but will not actually make changes. + ValidateOnly bool `protobuf:"varint,10501,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // 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,10502,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteRolloutKindRequest) Reset() { + *x = DeleteRolloutKindRequest{} + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteRolloutKindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteRolloutKindRequest) ProtoMessage() {} + +func (x *DeleteRolloutKindRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_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 DeleteRolloutKindRequest.ProtoReflect.Descriptor instead. +func (*DeleteRolloutKindRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteRolloutKindRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteRolloutKindRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *DeleteRolloutKindRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeleteRolloutKindRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +var File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto protoreflect.FileDescriptor + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDesc = []byte{ + 0x0a, 0x48, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x31, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x4a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x5f, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 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, 0x22, 0xd1, 0x01, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x8c, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0xbb, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x73, 0x18, 0x8d, 0x52, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x58, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x02, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0a, 0x72, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x49, 0x64, 0x12, 0x5a, + 0x0a, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, + 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x22, 0xf6, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5a, 0x0a, 0x07, 0x72, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0xb6, 0x01, 0x0a, 0x14, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, + 0xda, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, + 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x12, 0x2a, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x89, 0x52, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8a, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x18, 0x8b, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x8c, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xcc, + 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, + 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x64, 0x0a, 0x0d, 0x72, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x73, 0x18, 0x8d, 0x52, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x52, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x8f, 0x52, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x60, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, + 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc4, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4b, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x96, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x2c, 0x12, 0x2a, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, + 0x64, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x87, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x67, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x79, 0x18, 0x85, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x87, 0x02, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x67, 0x0a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, + 0x69, 0x6e, 0x64, 0x18, 0x88, 0x52, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, + 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x18, 0x90, 0x52, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x91, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x2c, 0x0a, 0x2a, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x13, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0xda, + 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x85, 0x52, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x86, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x32, 0x88, 0x13, 0x0a, 0x0c, 0x53, 0x61, 0x61, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x73, 0x12, 0xe3, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x73, 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x47, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x12, 0xd0, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, + 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, + 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf4, 0x01, 0x0a, 0x0d, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x47, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, + 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, + 0x75, 0x74, 0x22, 0x5e, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x22, + 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x73, 0x12, 0xf6, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, + 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x22, 0x60, 0xda, 0x41, 0x13, 0x72, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x07, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x32, 0x39, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 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, + 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0d, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x12, 0x47, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x40, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xf3, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, + 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, + 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, 0xe0, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, + 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x93, 0x02, 0x0a, 0x11, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x71, 0xda, 0x41, + 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, + 0x6b, 0x69, 0x6e, 0x64, 0x2c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, + 0x64, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x12, + 0x95, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, + 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, + 0x6e, 0x64, 0x22, 0x73, 0xda, 0x41, 0x18, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, + 0x69, 0x6e, 0x64, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x3a, 0x0c, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, + 0x69, 0x6e, 0x64, 0x32, 0x42, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x72, + 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 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, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x4b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x73, 0x61, 0x61, + 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x4b, + 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, + 0x4b, 0x69, 0x6e, 0x64, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x52, 0xca, 0x41, 0x1e, 0x73, 0x61, 0x61, + 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 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, 0xd4, 0x02, 0x0a, + 0x35, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x73, + 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x18, 0x53, 0x61, 0x61, 0x73, 0x52, 0x6f, 0x6c, 0x6c, + 0x6f, 0x75, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x6d, 0x67, 0x6d, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, 0x74, 0x70, + 0x62, 0x3b, 0x73, 0x61, 0x61, 0x73, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x6d, 0x67, 0x6d, + 0x74, 0x70, 0x62, 0xaa, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x2e, + 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x31, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x5c, 0x53, 0x61, 0x61, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, + 0x67, 0x6d, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x35, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x53, 0x61, 0x61, + 0x73, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x53, 0x61, 0x61, 0x73, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x67, 0x6d, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescOnce sync.Once + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescData = file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDesc +) + +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescGZIP() []byte { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescOnce.Do(func() { + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescData) + }) + return file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDescData +} + +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_goTypes = []any{ + (*ListRolloutsRequest)(nil), // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutsRequest + (*ListRolloutsResponse)(nil), // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutsResponse + (*GetRolloutRequest)(nil), // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetRolloutRequest + (*CreateRolloutRequest)(nil), // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutRequest + (*UpdateRolloutRequest)(nil), // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutRequest + (*DeleteRolloutRequest)(nil), // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteRolloutRequest + (*ListRolloutKindsRequest)(nil), // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutKindsRequest + (*ListRolloutKindsResponse)(nil), // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutKindsResponse + (*GetRolloutKindRequest)(nil), // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.GetRolloutKindRequest + (*CreateRolloutKindRequest)(nil), // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutKindRequest + (*UpdateRolloutKindRequest)(nil), // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutKindRequest + (*DeleteRolloutKindRequest)(nil), // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteRolloutKindRequest + (*Rollout)(nil), // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + (*fieldmaskpb.FieldMask)(nil), // 13: google.protobuf.FieldMask + (*RolloutKind)(nil), // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + (*emptypb.Empty)(nil), // 15: google.protobuf.Empty +} +var file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_depIdxs = []int32{ + 12, // 0: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutsResponse.rollouts:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 12, // 1: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutRequest.rollout:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 12, // 2: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutRequest.rollout:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 13, // 3: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutRequest.update_mask:type_name -> google.protobuf.FieldMask + 14, // 4: google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutKindsResponse.rollout_kinds:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 14, // 5: google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutKindRequest.rollout_kind:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 14, // 6: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutKindRequest.rollout_kind:type_name -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 13, // 7: google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutKindRequest.update_mask:type_name -> google.protobuf.FieldMask + 0, // 8: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRollouts:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutsRequest + 2, // 9: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRollout:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetRolloutRequest + 3, // 10: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRollout:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutRequest + 4, // 11: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRollout:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutRequest + 5, // 12: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRollout:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteRolloutRequest + 6, // 13: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRolloutKinds:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutKindsRequest + 8, // 14: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRolloutKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.GetRolloutKindRequest + 9, // 15: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRolloutKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.CreateRolloutKindRequest + 10, // 16: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRolloutKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.UpdateRolloutKindRequest + 11, // 17: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRolloutKind:input_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.DeleteRolloutKindRequest + 1, // 18: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRollouts:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutsResponse + 12, // 19: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRollout:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 12, // 20: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRollout:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 12, // 21: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRollout:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.Rollout + 15, // 22: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRollout:output_type -> google.protobuf.Empty + 7, // 23: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.ListRolloutKinds:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.ListRolloutKindsResponse + 14, // 24: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.GetRolloutKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 14, // 25: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.CreateRolloutKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 14, // 26: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.UpdateRolloutKind:output_type -> google.cloud.saasplatform.saasservicemgmt.v1beta1.RolloutKind + 15, // 27: google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts.DeleteRolloutKind:output_type -> google.protobuf.Empty + 18, // [18:28] is the sub-list for method output_type + 8, // [8:18] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_init() } +func file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_init() { + if File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto != nil { + return + } + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_resources_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 12, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_goTypes, + DependencyIndexes: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_depIdxs, + MessageInfos: file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_msgTypes, + }.Build() + File_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto = out.File + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_rawDesc = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_goTypes = nil + file_google_cloud_saasplatform_saasservicemgmt_v1beta1_rollouts_service_proto_depIdxs = nil +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service_grpc.pb.go b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service_grpc.pb.go new file mode 100644 index 000000000000..ef75b1adb713 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/saasservicemgmtpb/rollouts_service_grpc.pb.go @@ -0,0 +1,476 @@ +// Copyright 2025 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/saasplatform/saasservicemgmt/v1beta1/rollouts_service.proto + +package saasservicemgmtpb + +import ( + context "context" + + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + emptypb "google.golang.org/protobuf/types/known/emptypb" +) + +// 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 ( + SaasRollouts_ListRollouts_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/ListRollouts" + SaasRollouts_GetRollout_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/GetRollout" + SaasRollouts_CreateRollout_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/CreateRollout" + SaasRollouts_UpdateRollout_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/UpdateRollout" + SaasRollouts_DeleteRollout_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/DeleteRollout" + SaasRollouts_ListRolloutKinds_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/ListRolloutKinds" + SaasRollouts_GetRolloutKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/GetRolloutKind" + SaasRollouts_CreateRolloutKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/CreateRolloutKind" + SaasRollouts_UpdateRolloutKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/UpdateRolloutKind" + SaasRollouts_DeleteRolloutKind_FullMethodName = "/google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts/DeleteRolloutKind" +) + +// SaasRolloutsClient is the client API for SaasRollouts 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 SaasRolloutsClient interface { + // Retrieve a collection of rollouts. + ListRollouts(ctx context.Context, in *ListRolloutsRequest, opts ...grpc.CallOption) (*ListRolloutsResponse, error) + // Retrieve a single rollout. + GetRollout(ctx context.Context, in *GetRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) + // Create a new rollout. + CreateRollout(ctx context.Context, in *CreateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) + // Update a single rollout. + UpdateRollout(ctx context.Context, in *UpdateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) + // Delete a single rollout. + DeleteRollout(ctx context.Context, in *DeleteRolloutRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Retrieve a collection of rollout kinds. + ListRolloutKinds(ctx context.Context, in *ListRolloutKindsRequest, opts ...grpc.CallOption) (*ListRolloutKindsResponse, error) + // Retrieve a single rollout kind. + GetRolloutKind(ctx context.Context, in *GetRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) + // Create a new rollout kind. + CreateRolloutKind(ctx context.Context, in *CreateRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) + // Update a single rollout kind. + UpdateRolloutKind(ctx context.Context, in *UpdateRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) + // Delete a single rollout kind. + DeleteRolloutKind(ctx context.Context, in *DeleteRolloutKindRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) +} + +type saasRolloutsClient struct { + cc grpc.ClientConnInterface +} + +func NewSaasRolloutsClient(cc grpc.ClientConnInterface) SaasRolloutsClient { + return &saasRolloutsClient{cc} +} + +func (c *saasRolloutsClient) ListRollouts(ctx context.Context, in *ListRolloutsRequest, opts ...grpc.CallOption) (*ListRolloutsResponse, error) { + out := new(ListRolloutsResponse) + err := c.cc.Invoke(ctx, SaasRollouts_ListRollouts_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) GetRollout(ctx context.Context, in *GetRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) { + out := new(Rollout) + err := c.cc.Invoke(ctx, SaasRollouts_GetRollout_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) CreateRollout(ctx context.Context, in *CreateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) { + out := new(Rollout) + err := c.cc.Invoke(ctx, SaasRollouts_CreateRollout_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) UpdateRollout(ctx context.Context, in *UpdateRolloutRequest, opts ...grpc.CallOption) (*Rollout, error) { + out := new(Rollout) + err := c.cc.Invoke(ctx, SaasRollouts_UpdateRollout_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) DeleteRollout(ctx context.Context, in *DeleteRolloutRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasRollouts_DeleteRollout_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) ListRolloutKinds(ctx context.Context, in *ListRolloutKindsRequest, opts ...grpc.CallOption) (*ListRolloutKindsResponse, error) { + out := new(ListRolloutKindsResponse) + err := c.cc.Invoke(ctx, SaasRollouts_ListRolloutKinds_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) GetRolloutKind(ctx context.Context, in *GetRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) { + out := new(RolloutKind) + err := c.cc.Invoke(ctx, SaasRollouts_GetRolloutKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) CreateRolloutKind(ctx context.Context, in *CreateRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) { + out := new(RolloutKind) + err := c.cc.Invoke(ctx, SaasRollouts_CreateRolloutKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) UpdateRolloutKind(ctx context.Context, in *UpdateRolloutKindRequest, opts ...grpc.CallOption) (*RolloutKind, error) { + out := new(RolloutKind) + err := c.cc.Invoke(ctx, SaasRollouts_UpdateRolloutKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *saasRolloutsClient) DeleteRolloutKind(ctx context.Context, in *DeleteRolloutKindRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, SaasRollouts_DeleteRolloutKind_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SaasRolloutsServer is the server API for SaasRollouts service. +// All implementations should embed UnimplementedSaasRolloutsServer +// for forward compatibility +type SaasRolloutsServer interface { + // Retrieve a collection of rollouts. + ListRollouts(context.Context, *ListRolloutsRequest) (*ListRolloutsResponse, error) + // Retrieve a single rollout. + GetRollout(context.Context, *GetRolloutRequest) (*Rollout, error) + // Create a new rollout. + CreateRollout(context.Context, *CreateRolloutRequest) (*Rollout, error) + // Update a single rollout. + UpdateRollout(context.Context, *UpdateRolloutRequest) (*Rollout, error) + // Delete a single rollout. + DeleteRollout(context.Context, *DeleteRolloutRequest) (*emptypb.Empty, error) + // Retrieve a collection of rollout kinds. + ListRolloutKinds(context.Context, *ListRolloutKindsRequest) (*ListRolloutKindsResponse, error) + // Retrieve a single rollout kind. + GetRolloutKind(context.Context, *GetRolloutKindRequest) (*RolloutKind, error) + // Create a new rollout kind. + CreateRolloutKind(context.Context, *CreateRolloutKindRequest) (*RolloutKind, error) + // Update a single rollout kind. + UpdateRolloutKind(context.Context, *UpdateRolloutKindRequest) (*RolloutKind, error) + // Delete a single rollout kind. + DeleteRolloutKind(context.Context, *DeleteRolloutKindRequest) (*emptypb.Empty, error) +} + +// UnimplementedSaasRolloutsServer should be embedded to have forward compatible implementations. +type UnimplementedSaasRolloutsServer struct { +} + +func (UnimplementedSaasRolloutsServer) ListRollouts(context.Context, *ListRolloutsRequest) (*ListRolloutsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRollouts not implemented") +} +func (UnimplementedSaasRolloutsServer) GetRollout(context.Context, *GetRolloutRequest) (*Rollout, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRollout not implemented") +} +func (UnimplementedSaasRolloutsServer) CreateRollout(context.Context, *CreateRolloutRequest) (*Rollout, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRollout not implemented") +} +func (UnimplementedSaasRolloutsServer) UpdateRollout(context.Context, *UpdateRolloutRequest) (*Rollout, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRollout not implemented") +} +func (UnimplementedSaasRolloutsServer) DeleteRollout(context.Context, *DeleteRolloutRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteRollout not implemented") +} +func (UnimplementedSaasRolloutsServer) ListRolloutKinds(context.Context, *ListRolloutKindsRequest) (*ListRolloutKindsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRolloutKinds not implemented") +} +func (UnimplementedSaasRolloutsServer) GetRolloutKind(context.Context, *GetRolloutKindRequest) (*RolloutKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRolloutKind not implemented") +} +func (UnimplementedSaasRolloutsServer) CreateRolloutKind(context.Context, *CreateRolloutKindRequest) (*RolloutKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateRolloutKind not implemented") +} +func (UnimplementedSaasRolloutsServer) UpdateRolloutKind(context.Context, *UpdateRolloutKindRequest) (*RolloutKind, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateRolloutKind not implemented") +} +func (UnimplementedSaasRolloutsServer) DeleteRolloutKind(context.Context, *DeleteRolloutKindRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteRolloutKind not implemented") +} + +// UnsafeSaasRolloutsServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to SaasRolloutsServer will +// result in compilation errors. +type UnsafeSaasRolloutsServer interface { + mustEmbedUnimplementedSaasRolloutsServer() +} + +func RegisterSaasRolloutsServer(s grpc.ServiceRegistrar, srv SaasRolloutsServer) { + s.RegisterService(&SaasRollouts_ServiceDesc, srv) +} + +func _SaasRollouts_ListRollouts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRolloutsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).ListRollouts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_ListRollouts_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).ListRollouts(ctx, req.(*ListRolloutsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_GetRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRolloutRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).GetRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_GetRollout_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).GetRollout(ctx, req.(*GetRolloutRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_CreateRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRolloutRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).CreateRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_CreateRollout_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).CreateRollout(ctx, req.(*CreateRolloutRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_UpdateRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateRolloutRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).UpdateRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_UpdateRollout_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).UpdateRollout(ctx, req.(*UpdateRolloutRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_DeleteRollout_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRolloutRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).DeleteRollout(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_DeleteRollout_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).DeleteRollout(ctx, req.(*DeleteRolloutRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_ListRolloutKinds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRolloutKindsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).ListRolloutKinds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_ListRolloutKinds_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).ListRolloutKinds(ctx, req.(*ListRolloutKindsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_GetRolloutKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRolloutKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).GetRolloutKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_GetRolloutKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).GetRolloutKind(ctx, req.(*GetRolloutKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_CreateRolloutKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateRolloutKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).CreateRolloutKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_CreateRolloutKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).CreateRolloutKind(ctx, req.(*CreateRolloutKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_UpdateRolloutKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateRolloutKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).UpdateRolloutKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_UpdateRolloutKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).UpdateRolloutKind(ctx, req.(*UpdateRolloutKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SaasRollouts_DeleteRolloutKind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteRolloutKindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SaasRolloutsServer).DeleteRolloutKind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: SaasRollouts_DeleteRolloutKind_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SaasRolloutsServer).DeleteRolloutKind(ctx, req.(*DeleteRolloutKindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// SaasRollouts_ServiceDesc is the grpc.ServiceDesc for SaasRollouts service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var SaasRollouts_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.saasplatform.saasservicemgmt.v1beta1.SaasRollouts", + HandlerType: (*SaasRolloutsServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListRollouts", + Handler: _SaasRollouts_ListRollouts_Handler, + }, + { + MethodName: "GetRollout", + Handler: _SaasRollouts_GetRollout_Handler, + }, + { + MethodName: "CreateRollout", + Handler: _SaasRollouts_CreateRollout_Handler, + }, + { + MethodName: "UpdateRollout", + Handler: _SaasRollouts_UpdateRollout_Handler, + }, + { + MethodName: "DeleteRollout", + Handler: _SaasRollouts_DeleteRollout_Handler, + }, + { + MethodName: "ListRolloutKinds", + Handler: _SaasRollouts_ListRolloutKinds_Handler, + }, + { + MethodName: "GetRolloutKind", + Handler: _SaasRollouts_GetRolloutKind_Handler, + }, + { + MethodName: "CreateRolloutKind", + Handler: _SaasRollouts_CreateRolloutKind_Handler, + }, + { + MethodName: "UpdateRolloutKind", + Handler: _SaasRollouts_UpdateRolloutKind_Handler, + }, + { + MethodName: "DeleteRolloutKind", + Handler: _SaasRollouts_DeleteRolloutKind_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/saasplatform/saasservicemgmt/v1beta1/rollouts_service.proto", +} diff --git a/saasplatform/saasservicemgmt/apiv1beta1/version.go b/saasplatform/saasservicemgmt/apiv1beta1/version.go new file mode 100644 index 000000000000..5cbafa25dbd3 --- /dev/null +++ b/saasplatform/saasservicemgmt/apiv1beta1/version.go @@ -0,0 +1,23 @@ +// Copyright 2025 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 saasservicemgmt + +import "cloud.google.com/go/saasplatform/internal" + +func init() { + versionClient = internal.Version +}