From 9f471d82f0098a362427a204dd484e6c4460894a Mon Sep 17 00:00:00 2001 From: Alex Hong <9397363+hongalex@users.noreply.github.com> Date: Fri, 27 Feb 2026 22:51:03 +0000 Subject: [PATCH] feat(networkconnectivity): add new clients PiperOrigin-RevId: 876282040 --- .librarian/state.yaml | 16 +- .../CancelOperation/main.go | 51 + .../CreateDestination/main.go | 58 + .../main.go | 58 + .../DeleteDestination/main.go | 56 + .../main.go | 56 + .../DeleteOperation/main.go | 51 + .../DataTransferClient/GetDestination/main.go | 53 + .../DataTransferClient/GetIamPolicy/main.go | 53 + .../DataTransferClient/GetLocation/main.go | 53 + .../GetMulticloudDataTransferConfig/main.go | 53 + .../main.go | 53 + .../DataTransferClient/GetOperation/main.go | 53 + .../ListDestinations/main.go | 66 + .../DataTransferClient/ListLocations/main.go | 66 + .../ListMulticloudDataTransferConfigs/main.go | 66 + .../main.go | 66 + .../DataTransferClient/ListOperations/main.go | 66 + .../DataTransferClient/SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../UpdateDestination/main.go | 58 + .../main.go | 58 + .../HubClient/AcceptHubSpoke/main.go | 58 + .../HubClient/AcceptSpokeUpdate/main.go | 58 + .../HubClient/CancelOperation/main.go | 51 + .../CreateGatewayAdvertisedRoute/main.go | 58 + .../apiv1beta/HubClient/CreateHub/main.go | 58 + .../apiv1beta/HubClient/CreateSpoke/main.go | 58 + .../DeleteGatewayAdvertisedRoute/main.go | 56 + .../apiv1beta/HubClient/DeleteHub/main.go | 56 + .../HubClient/DeleteOperation/main.go | 51 + .../apiv1beta/HubClient/DeleteSpoke/main.go | 56 + .../GetGatewayAdvertisedRoute/main.go | 53 + .../apiv1beta/HubClient/GetGroup/main.go | 53 + .../apiv1beta/HubClient/GetHub/main.go | 53 + .../apiv1beta/HubClient/GetIamPolicy/main.go | 53 + .../apiv1beta/HubClient/GetLocation/main.go | 53 + .../apiv1beta/HubClient/GetOperation/main.go | 53 + .../apiv1beta/HubClient/GetRoute/main.go | 53 + .../apiv1beta/HubClient/GetRouteTable/main.go | 53 + .../apiv1beta/HubClient/GetSpoke/main.go | 53 + .../ListGatewayAdvertisedRoutes/main.go | 66 + .../apiv1beta/HubClient/ListGroups/main.go | 66 + .../apiv1beta/HubClient/ListHubSpokes/main.go | 66 + .../apiv1beta/HubClient/ListHubs/main.go | 66 + .../apiv1beta/HubClient/ListLocations/main.go | 66 + .../HubClient/ListOperations/main.go | 66 + .../HubClient/ListRouteTables/main.go | 66 + .../apiv1beta/HubClient/ListRoutes/main.go | 66 + .../apiv1beta/HubClient/ListSpokes/main.go | 66 + .../HubClient/QueryHubStatus/main.go | 66 + .../HubClient/RejectHubSpoke/main.go | 58 + .../HubClient/RejectSpokeUpdate/main.go | 58 + .../apiv1beta/HubClient/SetIamPolicy/main.go | 53 + .../HubClient/TestIamPermissions/main.go | 53 + .../UpdateGatewayAdvertisedRoute/main.go | 58 + .../apiv1beta/HubClient/UpdateGroup/main.go | 58 + .../apiv1beta/HubClient/UpdateHub/main.go | 58 + .../apiv1beta/HubClient/UpdateSpoke/main.go | 58 + .../CancelOperation/main.go | 51 + .../CreatePolicyBasedRoute/main.go | 58 + .../DeleteOperation/main.go | 51 + .../DeletePolicyBasedRoute/main.go | 56 + .../GetIamPolicy/main.go | 53 + .../GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../GetPolicyBasedRoute/main.go | 53 + .../ListLocations/main.go | 66 + .../ListOperations/main.go | 66 + .../ListPolicyBasedRoutes/main.go | 66 + .../SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../CancelOperation/main.go | 51 + .../CreateTransport/main.go | 58 + .../DeleteOperation/main.go | 51 + .../DeleteTransport/main.go | 56 + .../GetIamPolicy/main.go | 53 + .../GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../GetRemoteTransportProfile/main.go | 53 + .../TransportManagerClient/GetStatus/main.go | 53 + .../GetTransport/main.go | 53 + .../ListLocations/main.go | 66 + .../ListOperations/main.go | 66 + .../ListRemoteTransportProfiles/main.go | 66 + .../ListTransports/main.go | 66 + .../SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../UpdateTransport/main.go | 58 + ...ogle.cloud.networkconnectivity.v1beta.json | 4055 ++++++++ .../apiv1beta/.repo-metadata.json | 10 + networkconnectivity/apiv1beta/auxiliary.go | 2182 +++++ .../apiv1beta/auxiliary_go123.go | 118 + .../apiv1beta/data_transfer_client.go | 1043 +++ ...data_transfer_client_example_go123_test.go | 158 + .../data_transfer_client_example_test.go | 652 ++ networkconnectivity/apiv1beta/doc.go | 90 + .../apiv1beta/gapic_metadata.json | 485 + networkconnectivity/apiv1beta/helpers.go | 65 + networkconnectivity/apiv1beta/hub_client.go | 1974 ++++ .../hub_client_example_go123_test.go | 288 + .../apiv1beta/hub_client_example_test.go | 1150 +++ .../networkconnectivitypb/common.pb.go | 280 + .../networkconnectivitypb/data_transfer.pb.go | 2778 ++++++ .../data_transfer_grpc.pb.go | 564 ++ .../apiv1beta/networkconnectivitypb/hub.pb.go | 8323 +++++++++++++++++ .../networkconnectivitypb/hub_grpc.pb.go | 1196 +++ .../policy_based_routing.pb.go | 1477 +++ .../policy_based_routing_grpc.pb.go | 242 + .../transport_manager.pb.go | 2547 +++++ .../transport_manager_grpc.pb.go | 398 + .../apiv1beta/policy_based_routing_client.go | 711 ++ ...based_routing_client_example_go123_test.go | 106 + ...olicy_based_routing_client_example_test.go | 410 + .../apiv1beta/transport_manager_client.go | 893 ++ ...sport_manager_client_example_go123_test.go | 132 + .../transport_manager_client_example_test.go | 527 ++ networkconnectivity/apiv1beta/version.go | 23 + 118 files changed, 37935 insertions(+), 3 deletions(-) create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateDestination/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateMulticloudDataTransferConfig/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteDestination/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteMulticloudDataTransferConfig/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetDestination/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetLocation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferConfig/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferSupportedService/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListDestinations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListLocations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferConfigs/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferSupportedServices/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListOperations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateDestination/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateMulticloudDataTransferConfig/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptHubSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptSpokeUpdate/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateGatewayAdvertisedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateHub/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteGatewayAdvertisedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteHub/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGatewayAdvertisedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGroup/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetHub/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetLocation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRouteTable/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGatewayAdvertisedRoutes/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGroups/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubSpokes/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubs/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListLocations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListOperations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRouteTables/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRoutes/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListSpokes/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/QueryHubStatus/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectHubSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectSpokeUpdate/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGatewayAdvertisedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGroup/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateHub/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateSpoke/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CreatePolicyBasedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeletePolicyBasedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetLocation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetPolicyBasedRoute/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListLocations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListOperations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListPolicyBasedRoutes/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CreateTransport/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteTransport/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetLocation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetOperation/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetRemoteTransportProfile/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetStatus/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetTransport/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListLocations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListOperations/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListRemoteTransportProfiles/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListTransports/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/UpdateTransport/main.go create mode 100644 internal/generated/snippets/networkconnectivity/apiv1beta/snippet_metadata.google.cloud.networkconnectivity.v1beta.json create mode 100644 networkconnectivity/apiv1beta/.repo-metadata.json create mode 100644 networkconnectivity/apiv1beta/auxiliary.go create mode 100644 networkconnectivity/apiv1beta/auxiliary_go123.go create mode 100644 networkconnectivity/apiv1beta/data_transfer_client.go create mode 100644 networkconnectivity/apiv1beta/data_transfer_client_example_go123_test.go create mode 100644 networkconnectivity/apiv1beta/data_transfer_client_example_test.go create mode 100644 networkconnectivity/apiv1beta/doc.go create mode 100644 networkconnectivity/apiv1beta/gapic_metadata.json create mode 100644 networkconnectivity/apiv1beta/helpers.go create mode 100644 networkconnectivity/apiv1beta/hub_client.go create mode 100644 networkconnectivity/apiv1beta/hub_client_example_go123_test.go create mode 100644 networkconnectivity/apiv1beta/hub_client_example_test.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/common.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer_grpc.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/hub.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/hub_grpc.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing_grpc.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager.pb.go create mode 100644 networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager_grpc.pb.go create mode 100644 networkconnectivity/apiv1beta/policy_based_routing_client.go create mode 100644 networkconnectivity/apiv1beta/policy_based_routing_client_example_go123_test.go create mode 100644 networkconnectivity/apiv1beta/policy_based_routing_client_example_test.go create mode 100644 networkconnectivity/apiv1beta/transport_manager_client.go create mode 100644 networkconnectivity/apiv1beta/transport_manager_client_example_go123_test.go create mode 100644 networkconnectivity/apiv1beta/transport_manager_client_example_test.go create mode 100644 networkconnectivity/apiv1beta/version.go diff --git a/.librarian/state.yaml b/.librarian/state.yaml index f0410c008e5d..747ce566c944 100644 --- a/.librarian/state.yaml +++ b/.librarian/state.yaml @@ -3958,12 +3958,14 @@ libraries: tag_format: '{id}/v{version}' - id: networkconnectivity version: 1.20.0 - last_generated_commit: 1133adb136f742df62864f1d9d307df25d451880 + last_generated_commit: 5328d7103e480708b3fe2458f90441c3e720a15c apis: - path: google/cloud/networkconnectivity/v1 service_config: networkconnectivity_v1.yaml - path: google/cloud/networkconnectivity/v1alpha1 service_config: networkconnectivity_v1alpha1.yaml + - path: google/cloud/networkconnectivity/v1beta + service_config: networkconnectivity_v1beta.yaml source_roots: - networkconnectivity - internal/generated/snippets/networkconnectivity @@ -3990,8 +3992,16 @@ libraries: - ^networkconnectivity/apiv1alpha1/helpers\.go$ - ^networkconnectivity/apiv1alpha1/networkconnectivitypb/.*$ - ^networkconnectivity/apiv1alpha1/\.repo-metadata\.json$ - release_exclude_paths: - - internal/generated/snippets/networkconnectivity/ + - ^networkconnectivity/apiv1beta/[^/]*_client\.go$ + - ^networkconnectivity/apiv1beta/[^/]*_client_example_go123_test\.go$ + - ^networkconnectivity/apiv1beta/[^/]*_client_example_test\.go$ + - ^networkconnectivity/apiv1beta/auxiliary\.go$ + - ^networkconnectivity/apiv1beta/auxiliary_go123\.go$ + - ^networkconnectivity/apiv1beta/doc\.go$ + - ^networkconnectivity/apiv1beta/gapic_metadata\.json$ + - ^networkconnectivity/apiv1beta/helpers\.go$ + - ^networkconnectivity/apiv1beta/\.repo-metadata\.json$ + - ^networkconnectivity/apiv1beta/networkconnectivitypb/.*$ tag_format: '{id}/v{version}' - id: networkmanagement version: 1.22.0 diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CancelOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CancelOperation/main.go new file mode 100644 index 000000000000..1f62a503e23d --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_CancelOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateDestination/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateDestination/main.go new file mode 100644 index 000000000000..ea5c22851690 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateDestination/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_CreateDestination_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateDestinationRequest. + } + op, err := c.CreateDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_CreateDestination_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateMulticloudDataTransferConfig/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateMulticloudDataTransferConfig/main.go new file mode 100644 index 000000000000..ccc49cf5eaac --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/CreateMulticloudDataTransferConfig/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateMulticloudDataTransferConfigRequest. + } + op, err := c.CreateMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteDestination/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteDestination/main.go new file mode 100644 index 000000000000..cac0b771bf98 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteDestination/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_DeleteDestination_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteDestinationRequest. + } + op, err := c.DeleteDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_DeleteDestination_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteMulticloudDataTransferConfig/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteMulticloudDataTransferConfig/main.go new file mode 100644 index 000000000000..c6769a8edbce --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteMulticloudDataTransferConfig/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteMulticloudDataTransferConfigRequest. + } + op, err := c.DeleteMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteOperation/main.go new file mode 100644 index 000000000000..999f80a5a8db --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_DeleteOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetDestination/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetDestination/main.go new file mode 100644 index 000000000000..1e739ee37126 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetDestination/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetDestination_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetDestinationRequest. + } + resp, err := c.GetDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_GetDestination_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..bd3cc59bb157 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetLocation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetLocation/main.go new file mode 100644 index 000000000000..d9a3cf970bd6 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetLocation_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + 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 := networkconnectivity.NewDataTransferClient(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 networkconnectivity_v1beta_generated_DataTransferService_GetLocation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferConfig/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferConfig/main.go new file mode 100644 index 000000000000..cc5aefc9137d --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferConfig_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetMulticloudDataTransferConfigRequest. + } + resp, err := c.GetMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferConfig_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferSupportedService/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferSupportedService/main.go new file mode 100644 index 000000000000..5a73ae1b1c2b --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetMulticloudDataTransferSupportedService/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetMulticloudDataTransferSupportedServiceRequest. + } + resp, err := c.GetMulticloudDataTransferSupportedService(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetOperation/main.go new file mode 100644 index 000000000000..5169ac30012f --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_GetOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListDestinations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListDestinations/main.go new file mode 100644 index 000000000000..bad1ac95a8e4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListDestinations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_ListDestinations_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListDestinationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListDestinationsRequest. + } + it := c.ListDestinations(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.(*networkconnectivitypb.ListDestinationsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_ListDestinations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListLocations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListLocations/main.go new file mode 100644 index 000000000000..dada8f8effae --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_ListLocations_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewDataTransferClient(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 networkconnectivity_v1beta_generated_DataTransferService_ListLocations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferConfigs/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferConfigs/main.go new file mode 100644 index 000000000000..3d5dc911f1a9 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferConfigs/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferConfigsRequest. + } + it := c.ListMulticloudDataTransferConfigs(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.(*networkconnectivitypb.ListMulticloudDataTransferConfigsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferSupportedServices/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferSupportedServices/main.go new file mode 100644 index 000000000000..0919cff682a4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListMulticloudDataTransferSupportedServices/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferSupportedServicesRequest. + } + it := c.ListMulticloudDataTransferSupportedServices(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.(*networkconnectivitypb.ListMulticloudDataTransferSupportedServicesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListOperations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListOperations/main.go new file mode 100644 index 000000000000..f1b2fc4a01ac --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_ListOperations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/SetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..870e6c665299 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_SetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/TestIamPermissions/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..a788eb1577fc --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_TestIamPermissions_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateDestination/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateDestination/main.go new file mode 100644 index 000000000000..31bcfc9c314f --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateDestination/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_UpdateDestination_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateDestinationRequest. + } + op, err := c.UpdateDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_UpdateDestination_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateMulticloudDataTransferConfig/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateMulticloudDataTransferConfig/main.go new file mode 100644 index 000000000000..33ad8b5c9466 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/DataTransferClient/UpdateMulticloudDataTransferConfig/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateMulticloudDataTransferConfigRequest. + } + op, err := c.UpdateMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptHubSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptHubSpoke/main.go new file mode 100644 index 000000000000..736606b3ac9a --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptHubSpoke/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_AcceptHubSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.AcceptHubSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#AcceptHubSpokeRequest. + } + op, err := c.AcceptHubSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_AcceptHubSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptSpokeUpdate/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptSpokeUpdate/main.go new file mode 100644 index 000000000000..403e9c83dde0 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/AcceptSpokeUpdate/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_AcceptSpokeUpdate_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.AcceptSpokeUpdateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#AcceptSpokeUpdateRequest. + } + op, err := c.AcceptSpokeUpdate(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_AcceptSpokeUpdate_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CancelOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CancelOperation/main.go new file mode 100644 index 000000000000..ee66b8f560c3 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_HubService_CancelOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateGatewayAdvertisedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateGatewayAdvertisedRoute/main.go new file mode 100644 index 000000000000..4a9d16853720 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateGatewayAdvertisedRoute/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_CreateGatewayAdvertisedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateGatewayAdvertisedRouteRequest. + } + op, err := c.CreateGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_CreateGatewayAdvertisedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateHub/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateHub/main.go new file mode 100644 index 000000000000..be94b824b72e --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateHub/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_CreateHub_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateHubRequest. + } + op, err := c.CreateHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_CreateHub_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateSpoke/main.go new file mode 100644 index 000000000000..478c283eb587 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/CreateSpoke/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_CreateSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateSpokeRequest. + } + op, err := c.CreateSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_CreateSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteGatewayAdvertisedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteGatewayAdvertisedRoute/main.go new file mode 100644 index 000000000000..91e36ee442f5 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteGatewayAdvertisedRoute/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_DeleteGatewayAdvertisedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteGatewayAdvertisedRouteRequest. + } + op, err := c.DeleteGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_HubService_DeleteGatewayAdvertisedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteHub/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteHub/main.go new file mode 100644 index 000000000000..99e99b880d95 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteHub/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_DeleteHub_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteHubRequest. + } + op, err := c.DeleteHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_HubService_DeleteHub_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteOperation/main.go new file mode 100644 index 000000000000..910c47516299 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_HubService_DeleteOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteSpoke/main.go new file mode 100644 index 000000000000..5d8e689d8834 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/DeleteSpoke/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_DeleteSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteSpokeRequest. + } + op, err := c.DeleteSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_HubService_DeleteSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGatewayAdvertisedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGatewayAdvertisedRoute/main.go new file mode 100644 index 000000000000..c4f66d252522 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGatewayAdvertisedRoute/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetGatewayAdvertisedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetGatewayAdvertisedRouteRequest. + } + resp, err := c.GetGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetGatewayAdvertisedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGroup/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGroup/main.go new file mode 100644 index 000000000000..85c08013637d --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetGroup/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetGroup_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetGroupRequest. + } + resp, err := c.GetGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetGroup_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetHub/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetHub/main.go new file mode 100644 index 000000000000..c873be674dd4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetHub/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetHub_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetHubRequest. + } + resp, err := c.GetHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetHub_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..a8509ce2c21a --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetLocation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetLocation/main.go new file mode 100644 index 000000000000..9d4761aa162c --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetLocation_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + 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 := networkconnectivity.NewHubClient(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 networkconnectivity_v1beta_generated_HubService_GetLocation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetOperation/main.go new file mode 100644 index 000000000000..fc744ada71e6 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRoute/main.go new file mode 100644 index 000000000000..89dc1ed4b04f --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRoute/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRouteRequest. + } + resp, err := c.GetRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRouteTable/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRouteTable/main.go new file mode 100644 index 000000000000..184eef3e0dd0 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetRouteTable/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetRouteTable_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRouteTableRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRouteTableRequest. + } + resp, err := c.GetRouteTable(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetRouteTable_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetSpoke/main.go new file mode 100644 index 000000000000..eb0a72ce572b --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/GetSpoke/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_GetSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetSpokeRequest. + } + resp, err := c.GetSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_GetSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGatewayAdvertisedRoutes/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGatewayAdvertisedRoutes/main.go new file mode 100644 index 000000000000..fa3d88a17988 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGatewayAdvertisedRoutes/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListGatewayAdvertisedRoutes_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGatewayAdvertisedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGatewayAdvertisedRoutesRequest. + } + it := c.ListGatewayAdvertisedRoutes(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.(*networkconnectivitypb.ListGatewayAdvertisedRoutesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListGatewayAdvertisedRoutes_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGroups/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGroups/main.go new file mode 100644 index 000000000000..1ea47a22cfff --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListGroups/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListGroups_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGroupsRequest. + } + it := c.ListGroups(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.(*networkconnectivitypb.ListGroupsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListGroups_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubSpokes/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubSpokes/main.go new file mode 100644 index 000000000000..a8492ee01654 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubSpokes/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListHubSpokes_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubSpokesRequest. + } + it := c.ListHubSpokes(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.(*networkconnectivitypb.ListHubSpokesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListHubSpokes_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubs/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubs/main.go new file mode 100644 index 000000000000..83ed33642120 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListHubs/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListHubs_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubsRequest. + } + it := c.ListHubs(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.(*networkconnectivitypb.ListHubsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListHubs_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListLocations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListLocations/main.go new file mode 100644 index 000000000000..984bef2c30f6 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListLocations_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewHubClient(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 networkconnectivity_v1beta_generated_HubService_ListLocations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListOperations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListOperations/main.go new file mode 100644 index 000000000000..80285f505d3a --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListOperations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRouteTables/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRouteTables/main.go new file mode 100644 index 000000000000..87c4403bc198 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRouteTables/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListRouteTables_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRouteTablesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRouteTablesRequest. + } + it := c.ListRouteTables(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.(*networkconnectivitypb.ListRouteTablesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListRouteTables_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRoutes/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRoutes/main.go new file mode 100644 index 000000000000..b3867b1a4982 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListRoutes/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListRoutes_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRoutesRequest. + } + it := c.ListRoutes(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.(*networkconnectivitypb.ListRoutesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListRoutes_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListSpokes/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListSpokes/main.go new file mode 100644 index 000000000000..c98d14bb8b39 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/ListSpokes/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_ListSpokes_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListSpokesRequest. + } + it := c.ListSpokes(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.(*networkconnectivitypb.ListSpokesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_ListSpokes_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/QueryHubStatus/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/QueryHubStatus/main.go new file mode 100644 index 000000000000..fc4514bd08c9 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/QueryHubStatus/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_QueryHubStatus_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.QueryHubStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#QueryHubStatusRequest. + } + it := c.QueryHubStatus(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.(*networkconnectivitypb.QueryHubStatusResponse) + } +} + +// [END networkconnectivity_v1beta_generated_HubService_QueryHubStatus_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectHubSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectHubSpoke/main.go new file mode 100644 index 000000000000..8427d6c29557 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectHubSpoke/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_RejectHubSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.RejectHubSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#RejectHubSpokeRequest. + } + op, err := c.RejectHubSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_RejectHubSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectSpokeUpdate/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectSpokeUpdate/main.go new file mode 100644 index 000000000000..9a807875c95f --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/RejectSpokeUpdate/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_RejectSpokeUpdate_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.RejectSpokeUpdateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#RejectSpokeUpdateRequest. + } + op, err := c.RejectSpokeUpdate(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_RejectSpokeUpdate_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/SetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..dc986dc4d9e9 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_SetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/TestIamPermissions/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..567ddc38e3a0 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_TestIamPermissions_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGatewayAdvertisedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGatewayAdvertisedRoute/main.go new file mode 100644 index 000000000000..ec9787187892 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGatewayAdvertisedRoute/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_UpdateGatewayAdvertisedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateGatewayAdvertisedRouteRequest. + } + op, err := c.UpdateGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_UpdateGatewayAdvertisedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGroup/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGroup/main.go new file mode 100644 index 000000000000..1db42db90ff2 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateGroup/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_UpdateGroup_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateGroupRequest. + } + op, err := c.UpdateGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_UpdateGroup_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateHub/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateHub/main.go new file mode 100644 index 000000000000..5d9617a58416 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateHub/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_UpdateHub_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateHubRequest. + } + op, err := c.UpdateHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_UpdateHub_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateSpoke/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateSpoke/main.go new file mode 100644 index 000000000000..96d92fff2de4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/HubClient/UpdateSpoke/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_HubService_UpdateSpoke_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateSpokeRequest. + } + op, err := c.UpdateSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_HubService_UpdateSpoke_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CancelOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CancelOperation/main.go new file mode 100644 index 000000000000..5b31cd0ee7bd --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CancelOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CreatePolicyBasedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CreatePolicyBasedRoute/main.go new file mode 100644 index 000000000000..2a21ed6d32bc --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/CreatePolicyBasedRoute/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreatePolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreatePolicyBasedRouteRequest. + } + op, err := c.CreatePolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeleteOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeleteOperation/main.go new file mode 100644 index 000000000000..660c5a983efc --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeleteOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeletePolicyBasedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeletePolicyBasedRoute/main.go new file mode 100644 index 000000000000..c351b63f6e78 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/DeletePolicyBasedRoute/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeletePolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeletePolicyBasedRouteRequest. + } + op, err := c.DeletePolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..aae98d6c36f4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetLocation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetLocation/main.go new file mode 100644 index 000000000000..139fa6e7c113 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetLocation_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + 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 := networkconnectivity.NewPolicyBasedRoutingClient(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 networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetLocation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetOperation/main.go new file mode 100644 index 000000000000..e1d66c0bc4c8 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetPolicyBasedRoute/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetPolicyBasedRoute/main.go new file mode 100644 index 000000000000..5ade83ff7d05 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/GetPolicyBasedRoute/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetPolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetPolicyBasedRouteRequest. + } + resp, err := c.GetPolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListLocations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListLocations/main.go new file mode 100644 index 000000000000..996074daef90 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListLocations_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewPolicyBasedRoutingClient(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 networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListLocations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListOperations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListOperations/main.go new file mode 100644 index 000000000000..85822b11e8fe --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListOperations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListPolicyBasedRoutes/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListPolicyBasedRoutes/main.go new file mode 100644 index 000000000000..746f486620af --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/ListPolicyBasedRoutes/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListPolicyBasedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListPolicyBasedRoutesRequest. + } + it := c.ListPolicyBasedRoutes(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.(*networkconnectivitypb.ListPolicyBasedRoutesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/SetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..7243697169b3 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_SetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/TestIamPermissions/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..38278b75b5d7 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/PolicyBasedRoutingClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_PolicyBasedRoutingService_TestIamPermissions_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_PolicyBasedRoutingService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CancelOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CancelOperation/main.go new file mode 100644 index 000000000000..404336f414d0 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_CancelOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CreateTransport/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CreateTransport/main.go new file mode 100644 index 000000000000..5450d50c82ff --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/CreateTransport/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_CreateTransport_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateTransportRequest. + } + op, err := c.CreateTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_CreateTransport_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteOperation/main.go new file mode 100644 index 000000000000..dac0c8d217c0 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_DeleteOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteTransport/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteTransport/main.go new file mode 100644 index 000000000000..a3080a27d227 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/DeleteTransport/main.go @@ -0,0 +1,56 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_DeleteTransport_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteTransportRequest. + } + op, err := c.DeleteTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_DeleteTransport_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..5e9bc02017c7 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_GetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetLocation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetLocation/main.go new file mode 100644 index 000000000000..4a0f9c69f801 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetLocation_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + 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 := networkconnectivity.NewTransportManagerClient(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 networkconnectivity_v1beta_generated_TransportManager_GetLocation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetOperation/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetOperation/main.go new file mode 100644 index 000000000000..2b1a618e3a5c --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_GetOperation_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetRemoteTransportProfile/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetRemoteTransportProfile/main.go new file mode 100644 index 000000000000..feea143b000d --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetRemoteTransportProfile/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetRemoteTransportProfile_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRemoteTransportProfileRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRemoteTransportProfileRequest. + } + resp, err := c.GetRemoteTransportProfile(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_GetRemoteTransportProfile_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetStatus/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetStatus/main.go new file mode 100644 index 000000000000..5368c7bfffb2 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetStatus/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetStatus_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetStatusRequest. + } + resp, err := c.GetStatus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_GetStatus_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetTransport/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetTransport/main.go new file mode 100644 index 000000000000..a3f4576c0e7c --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/GetTransport/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_GetTransport_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetTransportRequest. + } + resp, err := c.GetTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_GetTransport_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListLocations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListLocations/main.go new file mode 100644 index 000000000000..8d1ca403b31b --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListLocations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_ListLocations_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewTransportManagerClient(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 networkconnectivity_v1beta_generated_TransportManager_ListLocations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListOperations/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListOperations/main.go new file mode 100644 index 000000000000..c920eef78040 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListOperations/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + "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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_ListOperations_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListRemoteTransportProfiles/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListRemoteTransportProfiles/main.go new file mode 100644 index 000000000000..c06fe9c731ae --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListRemoteTransportProfiles/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_ListRemoteTransportProfiles_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRemoteTransportProfilesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRemoteTransportProfilesRequest. + } + it := c.ListRemoteTransportProfiles(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.(*networkconnectivitypb.ListRemoteTransportProfilesResponse) + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_ListRemoteTransportProfiles_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListTransports/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListTransports/main.go new file mode 100644 index 000000000000..8774c5e02832 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/ListTransports/main.go @@ -0,0 +1,66 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_ListTransports_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListTransportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListTransportsRequest. + } + it := c.ListTransports(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.(*networkconnectivitypb.ListTransportsResponse) + } +} + +// [END networkconnectivity_v1beta_generated_TransportManager_ListTransports_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/SetIamPolicy/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..af16cf2fe700 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_SetIamPolicy_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_SetIamPolicy_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/TestIamPermissions/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..d91f5450e693 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_TestIamPermissions_sync] + +package main + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_TestIamPermissions_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/UpdateTransport/main.go b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/UpdateTransport/main.go new file mode 100644 index 000000000000..aab4d210a6d4 --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/TransportManagerClient/UpdateTransport/main.go @@ -0,0 +1,58 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START networkconnectivity_v1beta_generated_TransportManager_UpdateTransport_sync] + +package main + +import ( + "context" + + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" +) + +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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateTransportRequest. + } + op, err := c.UpdateTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END networkconnectivity_v1beta_generated_TransportManager_UpdateTransport_sync] diff --git a/internal/generated/snippets/networkconnectivity/apiv1beta/snippet_metadata.google.cloud.networkconnectivity.v1beta.json b/internal/generated/snippets/networkconnectivity/apiv1beta/snippet_metadata.google.cloud.networkconnectivity.v1beta.json new file mode 100644 index 000000000000..31d3216e9ada --- /dev/null +++ b/internal/generated/snippets/networkconnectivity/apiv1beta/snippet_metadata.google.cloud.networkconnectivity.v1beta.json @@ -0,0 +1,4055 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/networkconnectivity/apiv1beta", + "version": "1.20.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.networkconnectivity.v1beta", + "version": "v1beta" + } + ] + }, + "snippets": [ + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_CancelOperation_sync", + "title": "networkconnectivity CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "DataTransferClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_CreateDestination_sync", + "title": "networkconnectivity CreateDestination Sample", + "description": "CreateDestination creates a `Destination` resource in a specified project and location.", + "file": "DataTransferClient/CreateDestination/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.CreateDestination", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateDestinationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateDestinationOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "CreateDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.CreateDestination", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_CreateMulticloudDataTransferConfig_sync", + "title": "networkconnectivity CreateMulticloudDataTransferConfig Sample", + "description": "CreateMulticloudDataTransferConfig creates a `MulticloudDataTransferConfig` resource in a specified project\nand location.", + "file": "DataTransferClient/CreateMulticloudDataTransferConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.CreateMulticloudDataTransferConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateMulticloudDataTransferConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateMulticloudDataTransferConfigOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "CreateMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.CreateMulticloudDataTransferConfig", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_DeleteDestination_sync", + "title": "networkconnectivity DeleteDestination Sample", + "description": "DeleteDestination deletes a `Destination` resource.", + "file": "DataTransferClient/DeleteDestination/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.DeleteDestination", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteDestinationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteDestinationOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "DeleteDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteDestination", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_DeleteMulticloudDataTransferConfig_sync", + "title": "networkconnectivity DeleteMulticloudDataTransferConfig Sample", + "description": "DeleteMulticloudDataTransferConfig deletes a `MulticloudDataTransferConfig` resource.", + "file": "DataTransferClient/DeleteMulticloudDataTransferConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.DeleteMulticloudDataTransferConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteMulticloudDataTransferConfigOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "DeleteMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteMulticloudDataTransferConfig", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_DeleteOperation_sync", + "title": "networkconnectivity DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "DataTransferClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_GetDestination_sync", + "title": "networkconnectivity GetDestination Sample", + "description": "GetDestination gets the details of a `Destination` resource.", + "file": "DataTransferClient/GetDestination/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetDestination", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetDestinationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Destination", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "GetDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.GetDestination", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_GetIamPolicy_sync", + "title": "networkconnectivity GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "DataTransferClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_GetLocation_sync", + "title": "networkconnectivity GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "DataTransferClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "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": "networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferConfig_sync", + "title": "networkconnectivity GetMulticloudDataTransferConfig Sample", + "description": "GetMulticloudDataTransferConfig gets the details of a `MulticloudDataTransferConfig` resource.", + "file": "DataTransferClient/GetMulticloudDataTransferConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetMulticloudDataTransferConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetMulticloudDataTransferConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.MulticloudDataTransferConfig", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "GetMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferConfig", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_GetMulticloudDataTransferSupportedService_sync", + "title": "networkconnectivity GetMulticloudDataTransferSupportedService Sample", + "description": "GetMulticloudDataTransferSupportedService gets the details of a service that is supported for Data Transfer\nEssentials.", + "file": "DataTransferClient/GetMulticloudDataTransferSupportedService/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetMulticloudDataTransferSupportedService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetMulticloudDataTransferSupportedService", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.MulticloudDataTransferSupportedService", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "GetMulticloudDataTransferSupportedService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferSupportedService", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_GetOperation_sync", + "title": "networkconnectivity GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "DataTransferClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_ListDestinations_sync", + "title": "networkconnectivity ListDestinations Sample", + "description": "ListDestinations lists the `Destination` resources in a specified project and location.", + "file": "DataTransferClient/ListDestinations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDestinations", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.ListDestinations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListDestinationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DestinationIterator", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "ListDestinations", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.ListDestinations", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_ListLocations_sync", + "title": "networkconnectivity ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "DataTransferClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "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": "networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferConfigs_sync", + "title": "networkconnectivity ListMulticloudDataTransferConfigs Sample", + "description": "ListMulticloudDataTransferConfigs lists the `MulticloudDataTransferConfig` resources in a specified project\nand location.", + "file": "DataTransferClient/ListMulticloudDataTransferConfigs/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListMulticloudDataTransferConfigs", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.ListMulticloudDataTransferConfigs", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListMulticloudDataTransferConfigsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "MulticloudDataTransferConfigIterator", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "ListMulticloudDataTransferConfigs", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferConfigs", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_ListMulticloudDataTransferSupportedServices_sync", + "title": "networkconnectivity ListMulticloudDataTransferSupportedServices Sample", + "description": "ListMulticloudDataTransferSupportedServices lists the services in the project for a region that are supported for\nData Transfer Essentials.", + "file": "DataTransferClient/ListMulticloudDataTransferSupportedServices/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListMulticloudDataTransferSupportedServices", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.ListMulticloudDataTransferSupportedServices", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "MulticloudDataTransferSupportedServiceIterator", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "ListMulticloudDataTransferSupportedServices", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferSupportedServices", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_ListOperations_sync", + "title": "networkconnectivity ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "DataTransferClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_SetIamPolicy_sync", + "title": "networkconnectivity SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "DataTransferClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_TestIamPermissions_sync", + "title": "networkconnectivity TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "DataTransferClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_UpdateDestination_sync", + "title": "networkconnectivity UpdateDestination Sample", + "description": "UpdateDestination updates a `Destination` resource in a specified project and location.", + "file": "DataTransferClient/UpdateDestination/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.UpdateDestination", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateDestinationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateDestinationOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "UpdateDestination", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateDestination", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_DataTransferService_UpdateMulticloudDataTransferConfig_sync", + "title": "networkconnectivity UpdateMulticloudDataTransferConfig Sample", + "description": "UpdateMulticloudDataTransferConfig updates a `MulticloudDataTransferConfig` resource in a specified project\nand location.", + "file": "DataTransferClient/UpdateMulticloudDataTransferConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient.UpdateMulticloudDataTransferConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateMulticloudDataTransferConfigOperation", + "client": { + "shortName": "DataTransferClient", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferClient" + }, + "method": { + "shortName": "UpdateMulticloudDataTransferConfig", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateMulticloudDataTransferConfig", + "service": { + "shortName": "DataTransferService", + "fullName": "google.cloud.networkconnectivity.v1beta.DataTransferService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_AcceptHubSpoke_sync", + "title": "networkconnectivity AcceptHubSpoke Sample", + "description": "AcceptHubSpoke accepts a proposal to attach a Network Connectivity Center spoke\nto a hub.", + "file": "HubClient/AcceptHubSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AcceptHubSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.AcceptHubSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.AcceptHubSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AcceptHubSpokeOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "AcceptHubSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.AcceptHubSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_AcceptSpokeUpdate_sync", + "title": "networkconnectivity AcceptSpokeUpdate Sample", + "description": "AcceptSpokeUpdate accepts a proposal to update a Network Connectivity Center spoke in a hub.", + "file": "HubClient/AcceptSpokeUpdate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AcceptSpokeUpdate", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.AcceptSpokeUpdate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.AcceptSpokeUpdateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AcceptSpokeUpdateOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "AcceptSpokeUpdate", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.AcceptSpokeUpdate", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_CancelOperation_sync", + "title": "networkconnectivity CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "HubClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_CreateGatewayAdvertisedRoute_sync", + "title": "networkconnectivity CreateGatewayAdvertisedRoute Sample", + "description": "CreateGatewayAdvertisedRoute create a GatewayAdvertisedRoute", + "file": "HubClient/CreateGatewayAdvertisedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.CreateGatewayAdvertisedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateGatewayAdvertisedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateGatewayAdvertisedRouteOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "CreateGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.CreateGatewayAdvertisedRoute", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_CreateHub_sync", + "title": "networkconnectivity CreateHub Sample", + "description": "CreateHub creates a new Network Connectivity Center hub in the specified project.", + "file": "HubClient/CreateHub/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.CreateHub", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateHubRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateHubOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "CreateHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.CreateHub", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_CreateSpoke_sync", + "title": "networkconnectivity CreateSpoke Sample", + "description": "CreateSpoke creates a Network Connectivity Center spoke.", + "file": "HubClient/CreateSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.CreateSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateSpokeOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "CreateSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.CreateSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_DeleteGatewayAdvertisedRoute_sync", + "title": "networkconnectivity DeleteGatewayAdvertisedRoute Sample", + "description": "DeleteGatewayAdvertisedRoute delete a GatewayAdvertisedRoute", + "file": "HubClient/DeleteGatewayAdvertisedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.DeleteGatewayAdvertisedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteGatewayAdvertisedRouteOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "DeleteGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.DeleteGatewayAdvertisedRoute", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_DeleteHub_sync", + "title": "networkconnectivity DeleteHub Sample", + "description": "DeleteHub deletes a Network Connectivity Center hub.", + "file": "HubClient/DeleteHub/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.DeleteHub", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteHubRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteHubOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "DeleteHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.DeleteHub", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_DeleteOperation_sync", + "title": "networkconnectivity DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "HubClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_DeleteSpoke_sync", + "title": "networkconnectivity DeleteSpoke Sample", + "description": "DeleteSpoke deletes a Network Connectivity Center spoke.", + "file": "HubClient/DeleteSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.DeleteSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteSpokeOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "DeleteSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.DeleteSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetGatewayAdvertisedRoute_sync", + "title": "networkconnectivity GetGatewayAdvertisedRoute Sample", + "description": "GetGatewayAdvertisedRoute get a GatewayAdvertisedRoute", + "file": "HubClient/GetGatewayAdvertisedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetGatewayAdvertisedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetGatewayAdvertisedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.GatewayAdvertisedRoute", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetGatewayAdvertisedRoute", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetGroup_sync", + "title": "networkconnectivity GetGroup Sample", + "description": "GetGroup gets details about a Network Connectivity Center group.", + "file": "HubClient/GetGroup/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetGroup", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetGroup", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetGroupRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Group", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetGroup", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetGroup", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetHub_sync", + "title": "networkconnectivity GetHub Sample", + "description": "GetHub gets details about a Network Connectivity Center hub.", + "file": "HubClient/GetHub/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetHub", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetHubRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Hub", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetHub", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetIamPolicy_sync", + "title": "networkconnectivity GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "HubClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetLocation_sync", + "title": "networkconnectivity GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "HubClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "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": "networkconnectivity_v1beta_generated_HubService_GetOperation_sync", + "title": "networkconnectivity GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "HubClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetRoute_sync", + "title": "networkconnectivity GetRoute Sample", + "description": "GetRoute gets details about the specified route.", + "file": "HubClient/GetRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Route", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetRoute", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetRouteTable_sync", + "title": "networkconnectivity GetRouteTable Sample", + "description": "GetRouteTable gets details about a Network Connectivity Center route table.", + "file": "HubClient/GetRouteTable/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRouteTable", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetRouteTable", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetRouteTableRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.RouteTable", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetRouteTable", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetRouteTable", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_GetSpoke_sync", + "title": "networkconnectivity GetSpoke Sample", + "description": "GetSpoke gets details about a Network Connectivity Center spoke.", + "file": "HubClient/GetSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.GetSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Spoke", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "GetSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.GetSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListGatewayAdvertisedRoutes_sync", + "title": "networkconnectivity ListGatewayAdvertisedRoutes Sample", + "description": "ListGatewayAdvertisedRoutes list GatewayAdvertisedRoutes", + "file": "HubClient/ListGatewayAdvertisedRoutes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListGatewayAdvertisedRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListGatewayAdvertisedRoutes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListGatewayAdvertisedRoutesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "GatewayAdvertisedRouteIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListGatewayAdvertisedRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListGatewayAdvertisedRoutes", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListGroups_sync", + "title": "networkconnectivity ListGroups Sample", + "description": "ListGroups lists groups in a given hub.", + "file": "HubClient/ListGroups/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListGroups", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListGroups", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListGroupsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "GroupIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListGroups", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListGroups", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListHubSpokes_sync", + "title": "networkconnectivity ListHubSpokes Sample", + "description": "ListHubSpokes lists the Network Connectivity Center spokes associated with a\nspecified hub and location. The list includes both spokes that are attached\nto the hub and spokes that have been proposed but not yet accepted.", + "file": "HubClient/ListHubSpokes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListHubSpokes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListHubSpokes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListHubSpokesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SpokeIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListHubSpokes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListHubSpokes", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListHubs_sync", + "title": "networkconnectivity ListHubs Sample", + "description": "ListHubs lists the Network Connectivity Center hubs associated with a given project.", + "file": "HubClient/ListHubs/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListHubs", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListHubs", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListHubsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "HubIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListHubs", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListHubs", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListLocations_sync", + "title": "networkconnectivity ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "HubClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "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": "networkconnectivity_v1beta_generated_HubService_ListOperations_sync", + "title": "networkconnectivity ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "HubClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListRouteTables_sync", + "title": "networkconnectivity ListRouteTables Sample", + "description": "ListRouteTables lists route tables in a given hub.", + "file": "HubClient/ListRouteTables/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRouteTables", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListRouteTables", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListRouteTablesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RouteTableIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListRouteTables", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListRouteTables", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListRoutes_sync", + "title": "networkconnectivity ListRoutes Sample", + "description": "ListRoutes lists routes in a given route table.", + "file": "HubClient/ListRoutes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListRoutes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListRoutesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RouteIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListRoutes", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_ListSpokes_sync", + "title": "networkconnectivity ListSpokes Sample", + "description": "ListSpokes lists the Network Connectivity Center spokes in a specified project and\nlocation.", + "file": "HubClient/ListSpokes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSpokes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.ListSpokes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListSpokesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SpokeIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "ListSpokes", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.ListSpokes", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_QueryHubStatus_sync", + "title": "networkconnectivity QueryHubStatus Sample", + "description": "QueryHubStatus query the Private Service Connect propagation status of a Network\nConnectivity Center hub.", + "file": "HubClient/QueryHubStatus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "QueryHubStatus", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.QueryHubStatus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.QueryHubStatusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "HubStatusEntryIterator", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "QueryHubStatus", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.QueryHubStatus", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_RejectHubSpoke_sync", + "title": "networkconnectivity RejectHubSpoke Sample", + "description": "RejectHubSpoke rejects a Network Connectivity Center spoke from being attached to a hub.\nIf the spoke was previously in the `ACTIVE` state, it\ntransitions to the `INACTIVE` state and is no longer able to\nconnect to other spokes that are attached to the hub.", + "file": "HubClient/RejectHubSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RejectHubSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.RejectHubSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.RejectHubSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RejectHubSpokeOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "RejectHubSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.RejectHubSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_RejectSpokeUpdate_sync", + "title": "networkconnectivity RejectSpokeUpdate Sample", + "description": "RejectSpokeUpdate rejects a proposal to update a Network Connectivity Center spoke in a hub.", + "file": "HubClient/RejectSpokeUpdate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RejectSpokeUpdate", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.RejectSpokeUpdate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.RejectSpokeUpdateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RejectSpokeUpdateOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "RejectSpokeUpdate", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.RejectSpokeUpdate", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_SetIamPolicy_sync", + "title": "networkconnectivity SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "HubClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_TestIamPermissions_sync", + "title": "networkconnectivity TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "HubClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_UpdateGatewayAdvertisedRoute_sync", + "title": "networkconnectivity UpdateGatewayAdvertisedRoute Sample", + "description": "UpdateGatewayAdvertisedRoute update a GatewayAdvertisedRoute", + "file": "HubClient/UpdateGatewayAdvertisedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.UpdateGatewayAdvertisedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateGatewayAdvertisedRouteOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "UpdateGatewayAdvertisedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.UpdateGatewayAdvertisedRoute", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_UpdateGroup_sync", + "title": "networkconnectivity UpdateGroup Sample", + "description": "UpdateGroup updates the parameters of a Network Connectivity Center group.", + "file": "HubClient/UpdateGroup/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateGroup", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.UpdateGroup", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateGroupRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateGroupOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "UpdateGroup", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.UpdateGroup", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_UpdateHub_sync", + "title": "networkconnectivity UpdateHub Sample", + "description": "UpdateHub updates the description and/or labels of a Network Connectivity Center\nhub.", + "file": "HubClient/UpdateHub/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.UpdateHub", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateHubRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateHubOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "UpdateHub", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.UpdateHub", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_HubService_UpdateSpoke_sync", + "title": "networkconnectivity UpdateSpoke Sample", + "description": "UpdateSpoke updates the parameters of a Network Connectivity Center spoke.", + "file": "HubClient/UpdateSpoke/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient.UpdateSpoke", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateSpokeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateSpokeOperation", + "client": { + "shortName": "HubClient", + "fullName": "google.cloud.networkconnectivity.v1beta.HubClient" + }, + "method": { + "shortName": "UpdateSpoke", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService.UpdateSpoke", + "service": { + "shortName": "HubService", + "fullName": "google.cloud.networkconnectivity.v1beta.HubService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CancelOperation_sync", + "title": "networkconnectivity CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "PolicyBasedRoutingClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_CreatePolicyBasedRoute_sync", + "title": "networkconnectivity CreatePolicyBasedRoute Sample", + "description": "CreatePolicyBasedRoute creates a new policy-based route in a given project and location.", + "file": "PolicyBasedRoutingClient/CreatePolicyBasedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreatePolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.CreatePolicyBasedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreatePolicyBasedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreatePolicyBasedRouteOperation", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "CreatePolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.CreatePolicyBasedRoute", + "service": { + "shortName": "PolicyBasedRoutingService", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeleteOperation_sync", + "title": "networkconnectivity DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "PolicyBasedRoutingClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_DeletePolicyBasedRoute_sync", + "title": "networkconnectivity DeletePolicyBasedRoute Sample", + "description": "DeletePolicyBasedRoute deletes a single policy-based route.", + "file": "PolicyBasedRoutingClient/DeletePolicyBasedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeletePolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.DeletePolicyBasedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeletePolicyBasedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeletePolicyBasedRouteOperation", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "DeletePolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.DeletePolicyBasedRoute", + "service": { + "shortName": "PolicyBasedRoutingService", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetIamPolicy_sync", + "title": "networkconnectivity GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "PolicyBasedRoutingClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetLocation_sync", + "title": "networkconnectivity GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "PolicyBasedRoutingClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "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": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetOperation_sync", + "title": "networkconnectivity GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "PolicyBasedRoutingClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_GetPolicyBasedRoute_sync", + "title": "networkconnectivity GetPolicyBasedRoute Sample", + "description": "GetPolicyBasedRoute gets details of a single policy-based route.", + "file": "PolicyBasedRoutingClient/GetPolicyBasedRoute/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetPolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.GetPolicyBasedRoute", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetPolicyBasedRouteRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.PolicyBasedRoute", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "GetPolicyBasedRoute", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.GetPolicyBasedRoute", + "service": { + "shortName": "PolicyBasedRoutingService", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListLocations_sync", + "title": "networkconnectivity ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "PolicyBasedRoutingClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "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": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListOperations_sync", + "title": "networkconnectivity ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "PolicyBasedRoutingClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_ListPolicyBasedRoutes_sync", + "title": "networkconnectivity ListPolicyBasedRoutes Sample", + "description": "ListPolicyBasedRoutes lists policy-based routes in a given project and location.", + "file": "PolicyBasedRoutingClient/ListPolicyBasedRoutes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListPolicyBasedRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.ListPolicyBasedRoutes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListPolicyBasedRoutesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "PolicyBasedRouteIterator", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "ListPolicyBasedRoutes", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.ListPolicyBasedRoutes", + "service": { + "shortName": "PolicyBasedRoutingService", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_SetIamPolicy_sync", + "title": "networkconnectivity SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "PolicyBasedRoutingClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_PolicyBasedRoutingService_TestIamPermissions_sync", + "title": "networkconnectivity TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "PolicyBasedRoutingClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "PolicyBasedRoutingClient", + "fullName": "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_CancelOperation_sync", + "title": "networkconnectivity CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "TransportManagerClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_CreateTransport_sync", + "title": "networkconnectivity CreateTransport Sample", + "description": "CreateTransport creates a new Transport in a given project and location.", + "file": "TransportManagerClient/CreateTransport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.CreateTransport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.CreateTransportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateTransportOperation", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "CreateTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.CreateTransport", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_DeleteOperation_sync", + "title": "networkconnectivity DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "TransportManagerClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_DeleteTransport_sync", + "title": "networkconnectivity DeleteTransport Sample", + "description": "DeleteTransport deletes a single Transport.", + "file": "TransportManagerClient/DeleteTransport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.DeleteTransport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.DeleteTransportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteTransportOperation", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "DeleteTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.DeleteTransport", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_GetIamPolicy_sync", + "title": "networkconnectivity GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "TransportManagerClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_GetLocation_sync", + "title": "networkconnectivity GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "TransportManagerClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "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": "networkconnectivity_v1beta_generated_TransportManager_GetOperation_sync", + "title": "networkconnectivity GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "TransportManagerClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_GetRemoteTransportProfile_sync", + "title": "networkconnectivity GetRemoteTransportProfile Sample", + "description": "GetRemoteTransportProfile gets details of a single RemoteTransportProfile.", + "file": "TransportManagerClient/GetRemoteTransportProfile/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetRemoteTransportProfile", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetRemoteTransportProfile", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetRemoteTransportProfileRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.RemoteTransportProfile", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "GetRemoteTransportProfile", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.GetRemoteTransportProfile", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_GetStatus_sync", + "title": "networkconnectivity GetStatus Sample", + "description": "GetStatus gets the operational status of a single Transport.", + "file": "TransportManagerClient/GetStatus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetStatus", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetStatus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetStatusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.GetStatusResponse", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "GetStatus", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.GetStatus", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_GetTransport_sync", + "title": "networkconnectivity GetTransport Sample", + "description": "GetTransport gets details of a single Transport.", + "file": "TransportManagerClient/GetTransport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.GetTransport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.GetTransportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*networkconnectivitypb.Transport", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "GetTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.GetTransport", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_ListLocations_sync", + "title": "networkconnectivity ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.\nThis method can be called in two ways: \n\n* **List all public locations: ** Use the path `GET /v1/locations`.\n* **List project-visible locations: ** Use the path\n`GET /v1/projects/{project_id}/locations`. This may include public\nlocations as well as private or other locations specifically visible\nto the project.", + "file": "TransportManagerClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "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": "networkconnectivity_v1beta_generated_TransportManager_ListOperations_sync", + "title": "networkconnectivity ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "TransportManagerClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_ListRemoteTransportProfiles_sync", + "title": "networkconnectivity ListRemoteTransportProfiles Sample", + "description": "ListRemoteTransportProfiles lists RemoteTransportProfiles in a given project and location.", + "file": "TransportManagerClient/ListRemoteTransportProfiles/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListRemoteTransportProfiles", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.ListRemoteTransportProfiles", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListRemoteTransportProfilesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RemoteTransportProfileIterator", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "ListRemoteTransportProfiles", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.ListRemoteTransportProfiles", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_ListTransports_sync", + "title": "networkconnectivity ListTransports Sample", + "description": "ListTransports lists Transports in a given project and location.", + "file": "TransportManagerClient/ListTransports/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListTransports", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.ListTransports", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.ListTransportsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "TransportIterator", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "ListTransports", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.ListTransports", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 66, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_SetIamPolicy_sync", + "title": "networkconnectivity SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "TransportManagerClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_TestIamPermissions_sync", + "title": "networkconnectivity TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "TransportManagerClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "networkconnectivity_v1beta_generated_TransportManager_UpdateTransport_sync", + "title": "networkconnectivity UpdateTransport Sample", + "description": "UpdateTransport updates the parameters of a single Transport.", + "file": "TransportManagerClient/UpdateTransport/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient.UpdateTransport", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "networkconnectivitypb.UpdateTransportRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateTransportOperation", + "client": { + "shortName": "TransportManagerClient", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManagerClient" + }, + "method": { + "shortName": "UpdateTransport", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager.UpdateTransport", + "service": { + "shortName": "TransportManager", + "fullName": "google.cloud.networkconnectivity.v1beta.TransportManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/networkconnectivity/apiv1beta/.repo-metadata.json b/networkconnectivity/apiv1beta/.repo-metadata.json new file mode 100644 index 000000000000..1f0515c9dfc2 --- /dev/null +++ b/networkconnectivity/apiv1beta/.repo-metadata.json @@ -0,0 +1,10 @@ +{ + "api_shortname": "networkconnectivity", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/networkconnectivity/latest/apiv1beta", + "client_library_type": "generated", + "description": "Network Connectivity API", + "distribution_name": "cloud.google.com/go/networkconnectivity/apiv1beta", + "language": "go", + "library_type": "GAPIC_AUTO", + "release_level": "preview" +} diff --git a/networkconnectivity/apiv1beta/auxiliary.go b/networkconnectivity/apiv1beta/auxiliary.go new file mode 100644 index 000000000000..7f9fe6eae90d --- /dev/null +++ b/networkconnectivity/apiv1beta/auxiliary.go @@ -0,0 +1,2182 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "time" + + "cloud.google.com/go/longrunning" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +// AcceptHubSpokeOperation manages a long-running operation from AcceptHubSpoke. +type AcceptHubSpokeOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *AcceptHubSpokeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.AcceptHubSpokeResponse, error) { + var resp networkconnectivitypb.AcceptHubSpokeResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *AcceptHubSpokeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.AcceptHubSpokeResponse, error) { + var resp networkconnectivitypb.AcceptHubSpokeResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *AcceptHubSpokeOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *AcceptHubSpokeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *AcceptHubSpokeOperation) Name() string { + return op.lro.Name() +} + +// AcceptSpokeUpdateOperation manages a long-running operation from AcceptSpokeUpdate. +type AcceptSpokeUpdateOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *AcceptSpokeUpdateOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.AcceptSpokeUpdateResponse, error) { + var resp networkconnectivitypb.AcceptSpokeUpdateResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *AcceptSpokeUpdateOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.AcceptSpokeUpdateResponse, error) { + var resp networkconnectivitypb.AcceptSpokeUpdateResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *AcceptSpokeUpdateOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *AcceptSpokeUpdateOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *AcceptSpokeUpdateOperation) Name() string { + return op.lro.Name() +} + +// CreateDestinationOperation manages a long-running operation from CreateDestination. +type CreateDestinationOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateDestinationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Destination, error) { + var resp networkconnectivitypb.Destination + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateDestinationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Destination, error) { + var resp networkconnectivitypb.Destination + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateDestinationOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateDestinationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateDestinationOperation) Name() string { + return op.lro.Name() +} + +// CreateGatewayAdvertisedRouteOperation manages a long-running operation from CreateGatewayAdvertisedRoute. +type CreateGatewayAdvertisedRouteOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateGatewayAdvertisedRouteOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + var resp networkconnectivitypb.GatewayAdvertisedRoute + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateGatewayAdvertisedRouteOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + var resp networkconnectivitypb.GatewayAdvertisedRoute + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateGatewayAdvertisedRouteOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateGatewayAdvertisedRouteOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateGatewayAdvertisedRouteOperation) Name() string { + return op.lro.Name() +} + +// CreateHubOperation manages a long-running operation from CreateHub. +type CreateHubOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateHubOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Hub, error) { + var resp networkconnectivitypb.Hub + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateHubOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Hub, error) { + var resp networkconnectivitypb.Hub + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateHubOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateHubOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateHubOperation) Name() string { + return op.lro.Name() +} + +// CreateMulticloudDataTransferConfigOperation manages a long-running operation from CreateMulticloudDataTransferConfig. +type CreateMulticloudDataTransferConfigOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateMulticloudDataTransferConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + var resp networkconnectivitypb.MulticloudDataTransferConfig + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateMulticloudDataTransferConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + var resp networkconnectivitypb.MulticloudDataTransferConfig + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateMulticloudDataTransferConfigOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateMulticloudDataTransferConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateMulticloudDataTransferConfigOperation) Name() string { + return op.lro.Name() +} + +// CreatePolicyBasedRouteOperation manages a long-running operation from CreatePolicyBasedRoute. +type CreatePolicyBasedRouteOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreatePolicyBasedRouteOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.PolicyBasedRoute, error) { + var resp networkconnectivitypb.PolicyBasedRoute + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreatePolicyBasedRouteOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.PolicyBasedRoute, error) { + var resp networkconnectivitypb.PolicyBasedRoute + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreatePolicyBasedRouteOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreatePolicyBasedRouteOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreatePolicyBasedRouteOperation) Name() string { + return op.lro.Name() +} + +// CreateSpokeOperation manages a long-running operation from CreateSpoke. +type CreateSpokeOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateSpokeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, error) { + var resp networkconnectivitypb.Spoke + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateSpokeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, error) { + var resp networkconnectivitypb.Spoke + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateSpokeOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateSpokeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateSpokeOperation) Name() string { + return op.lro.Name() +} + +// CreateTransportOperation manages a long-running operation from CreateTransport. +type CreateTransportOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateTransportOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Transport, error) { + var resp networkconnectivitypb.Transport + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateTransportOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Transport, error) { + var resp networkconnectivitypb.Transport + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateTransportOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateTransportOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateTransportOperation) Name() string { + return op.lro.Name() +} + +// DeleteDestinationOperation manages a long-running operation from DeleteDestination. +type DeleteDestinationOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteDestinationOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteDestinationOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteDestinationOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteDestinationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteDestinationOperation) Name() string { + return op.lro.Name() +} + +// DeleteGatewayAdvertisedRouteOperation manages a long-running operation from DeleteGatewayAdvertisedRoute. +type DeleteGatewayAdvertisedRouteOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteGatewayAdvertisedRouteOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteGatewayAdvertisedRouteOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteGatewayAdvertisedRouteOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteGatewayAdvertisedRouteOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteGatewayAdvertisedRouteOperation) Name() string { + return op.lro.Name() +} + +// DeleteHubOperation manages a long-running operation from DeleteHub. +type DeleteHubOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteHubOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteHubOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteHubOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteHubOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteHubOperation) Name() string { + return op.lro.Name() +} + +// DeleteMulticloudDataTransferConfigOperation manages a long-running operation from DeleteMulticloudDataTransferConfig. +type DeleteMulticloudDataTransferConfigOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteMulticloudDataTransferConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteMulticloudDataTransferConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteMulticloudDataTransferConfigOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteMulticloudDataTransferConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteMulticloudDataTransferConfigOperation) Name() string { + return op.lro.Name() +} + +// DeletePolicyBasedRouteOperation manages a long-running operation from DeletePolicyBasedRoute. +type DeletePolicyBasedRouteOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeletePolicyBasedRouteOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeletePolicyBasedRouteOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeletePolicyBasedRouteOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeletePolicyBasedRouteOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeletePolicyBasedRouteOperation) Name() string { + return op.lro.Name() +} + +// DeleteSpokeOperation manages a long-running operation from DeleteSpoke. +type DeleteSpokeOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteSpokeOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteSpokeOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteSpokeOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteSpokeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteSpokeOperation) Name() string { + return op.lro.Name() +} + +// DeleteTransportOperation manages a long-running operation from DeleteTransport. +type DeleteTransportOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteTransportOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteTransportOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteTransportOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteTransportOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteTransportOperation) Name() string { + return op.lro.Name() +} + +// RejectHubSpokeOperation manages a long-running operation from RejectHubSpoke. +type RejectHubSpokeOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RejectHubSpokeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.RejectHubSpokeResponse, error) { + var resp networkconnectivitypb.RejectHubSpokeResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RejectHubSpokeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.RejectHubSpokeResponse, error) { + var resp networkconnectivitypb.RejectHubSpokeResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RejectHubSpokeOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RejectHubSpokeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RejectHubSpokeOperation) Name() string { + return op.lro.Name() +} + +// RejectSpokeUpdateOperation manages a long-running operation from RejectSpokeUpdate. +type RejectSpokeUpdateOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RejectSpokeUpdateOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.RejectSpokeUpdateResponse, error) { + var resp networkconnectivitypb.RejectSpokeUpdateResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RejectSpokeUpdateOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.RejectSpokeUpdateResponse, error) { + var resp networkconnectivitypb.RejectSpokeUpdateResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RejectSpokeUpdateOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RejectSpokeUpdateOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RejectSpokeUpdateOperation) Name() string { + return op.lro.Name() +} + +// UpdateDestinationOperation manages a long-running operation from UpdateDestination. +type UpdateDestinationOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateDestinationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Destination, error) { + var resp networkconnectivitypb.Destination + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateDestinationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Destination, error) { + var resp networkconnectivitypb.Destination + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateDestinationOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateDestinationOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateDestinationOperation) Name() string { + return op.lro.Name() +} + +// UpdateGatewayAdvertisedRouteOperation manages a long-running operation from UpdateGatewayAdvertisedRoute. +type UpdateGatewayAdvertisedRouteOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateGatewayAdvertisedRouteOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + var resp networkconnectivitypb.GatewayAdvertisedRoute + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateGatewayAdvertisedRouteOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + var resp networkconnectivitypb.GatewayAdvertisedRoute + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateGatewayAdvertisedRouteOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateGatewayAdvertisedRouteOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateGatewayAdvertisedRouteOperation) Name() string { + return op.lro.Name() +} + +// UpdateGroupOperation manages a long-running operation from UpdateGroup. +type UpdateGroupOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateGroupOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Group, error) { + var resp networkconnectivitypb.Group + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateGroupOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Group, error) { + var resp networkconnectivitypb.Group + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateGroupOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateGroupOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateGroupOperation) Name() string { + return op.lro.Name() +} + +// UpdateHubOperation manages a long-running operation from UpdateHub. +type UpdateHubOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateHubOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Hub, error) { + var resp networkconnectivitypb.Hub + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateHubOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Hub, error) { + var resp networkconnectivitypb.Hub + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateHubOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateHubOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateHubOperation) Name() string { + return op.lro.Name() +} + +// UpdateMulticloudDataTransferConfigOperation manages a long-running operation from UpdateMulticloudDataTransferConfig. +type UpdateMulticloudDataTransferConfigOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateMulticloudDataTransferConfigOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + var resp networkconnectivitypb.MulticloudDataTransferConfig + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateMulticloudDataTransferConfigOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + var resp networkconnectivitypb.MulticloudDataTransferConfig + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateMulticloudDataTransferConfigOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateMulticloudDataTransferConfigOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateMulticloudDataTransferConfigOperation) Name() string { + return op.lro.Name() +} + +// UpdateSpokeOperation manages a long-running operation from UpdateSpoke. +type UpdateSpokeOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateSpokeOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, error) { + var resp networkconnectivitypb.Spoke + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateSpokeOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, error) { + var resp networkconnectivitypb.Spoke + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateSpokeOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateSpokeOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateSpokeOperation) Name() string { + return op.lro.Name() +} + +// UpdateTransportOperation manages a long-running operation from UpdateTransport. +type UpdateTransportOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *UpdateTransportOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Transport, error) { + var resp networkconnectivitypb.Transport + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *UpdateTransportOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*networkconnectivitypb.Transport, error) { + var resp networkconnectivitypb.Transport + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *UpdateTransportOperation) Metadata() (*networkconnectivitypb.OperationMetadata, error) { + var meta networkconnectivitypb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *UpdateTransportOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *UpdateTransportOperation) Name() string { + return op.lro.Name() +} + +// DestinationIterator manages a stream of *networkconnectivitypb.Destination. +type DestinationIterator struct { + items []*networkconnectivitypb.Destination + 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 []*networkconnectivitypb.Destination, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *DestinationIterator) 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 *DestinationIterator) Next() (*networkconnectivitypb.Destination, error) { + var item *networkconnectivitypb.Destination + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DestinationIterator) bufLen() int { + return len(it.items) +} + +func (it *DestinationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// GatewayAdvertisedRouteIterator manages a stream of *networkconnectivitypb.GatewayAdvertisedRoute. +type GatewayAdvertisedRouteIterator struct { + items []*networkconnectivitypb.GatewayAdvertisedRoute + 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 []*networkconnectivitypb.GatewayAdvertisedRoute, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *GatewayAdvertisedRouteIterator) 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 *GatewayAdvertisedRouteIterator) Next() (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + var item *networkconnectivitypb.GatewayAdvertisedRoute + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *GatewayAdvertisedRouteIterator) bufLen() int { + return len(it.items) +} + +func (it *GatewayAdvertisedRouteIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// GroupIterator manages a stream of *networkconnectivitypb.Group. +type GroupIterator struct { + items []*networkconnectivitypb.Group + 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 []*networkconnectivitypb.Group, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *GroupIterator) 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 *GroupIterator) Next() (*networkconnectivitypb.Group, error) { + var item *networkconnectivitypb.Group + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *GroupIterator) bufLen() int { + return len(it.items) +} + +func (it *GroupIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// HubIterator manages a stream of *networkconnectivitypb.Hub. +type HubIterator struct { + items []*networkconnectivitypb.Hub + 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 []*networkconnectivitypb.Hub, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *HubIterator) 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 *HubIterator) Next() (*networkconnectivitypb.Hub, error) { + var item *networkconnectivitypb.Hub + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *HubIterator) bufLen() int { + return len(it.items) +} + +func (it *HubIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// HubStatusEntryIterator manages a stream of *networkconnectivitypb.HubStatusEntry. +type HubStatusEntryIterator struct { + items []*networkconnectivitypb.HubStatusEntry + 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 []*networkconnectivitypb.HubStatusEntry, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *HubStatusEntryIterator) 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 *HubStatusEntryIterator) Next() (*networkconnectivitypb.HubStatusEntry, error) { + var item *networkconnectivitypb.HubStatusEntry + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *HubStatusEntryIterator) bufLen() int { + return len(it.items) +} + +func (it *HubStatusEntryIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// LocationIterator manages a stream of *locationpb.Location. +type LocationIterator struct { + items []*locationpb.Location + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*locationpb.Location, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *LocationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *LocationIterator) Next() (*locationpb.Location, error) { + var item *locationpb.Location + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *LocationIterator) bufLen() int { + return len(it.items) +} + +func (it *LocationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// MulticloudDataTransferConfigIterator manages a stream of *networkconnectivitypb.MulticloudDataTransferConfig. +type MulticloudDataTransferConfigIterator struct { + items []*networkconnectivitypb.MulticloudDataTransferConfig + 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 []*networkconnectivitypb.MulticloudDataTransferConfig, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *MulticloudDataTransferConfigIterator) 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 *MulticloudDataTransferConfigIterator) Next() (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + var item *networkconnectivitypb.MulticloudDataTransferConfig + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *MulticloudDataTransferConfigIterator) bufLen() int { + return len(it.items) +} + +func (it *MulticloudDataTransferConfigIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// MulticloudDataTransferSupportedServiceIterator manages a stream of *networkconnectivitypb.MulticloudDataTransferSupportedService. +type MulticloudDataTransferSupportedServiceIterator struct { + items []*networkconnectivitypb.MulticloudDataTransferSupportedService + 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 []*networkconnectivitypb.MulticloudDataTransferSupportedService, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *MulticloudDataTransferSupportedServiceIterator) 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 *MulticloudDataTransferSupportedServiceIterator) Next() (*networkconnectivitypb.MulticloudDataTransferSupportedService, error) { + var item *networkconnectivitypb.MulticloudDataTransferSupportedService + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *MulticloudDataTransferSupportedServiceIterator) bufLen() int { + return len(it.items) +} + +func (it *MulticloudDataTransferSupportedServiceIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// OperationIterator manages a stream of *longrunningpb.Operation. +type OperationIterator struct { + items []*longrunningpb.Operation + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*longrunningpb.Operation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *OperationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *OperationIterator) Next() (*longrunningpb.Operation, error) { + var item *longrunningpb.Operation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OperationIterator) bufLen() int { + return len(it.items) +} + +func (it *OperationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// PolicyBasedRouteIterator manages a stream of *networkconnectivitypb.PolicyBasedRoute. +type PolicyBasedRouteIterator struct { + items []*networkconnectivitypb.PolicyBasedRoute + 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 []*networkconnectivitypb.PolicyBasedRoute, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *PolicyBasedRouteIterator) 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 *PolicyBasedRouteIterator) Next() (*networkconnectivitypb.PolicyBasedRoute, error) { + var item *networkconnectivitypb.PolicyBasedRoute + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *PolicyBasedRouteIterator) bufLen() int { + return len(it.items) +} + +func (it *PolicyBasedRouteIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// RemoteTransportProfileIterator manages a stream of *networkconnectivitypb.RemoteTransportProfile. +type RemoteTransportProfileIterator struct { + items []*networkconnectivitypb.RemoteTransportProfile + 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 []*networkconnectivitypb.RemoteTransportProfile, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *RemoteTransportProfileIterator) 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 *RemoteTransportProfileIterator) Next() (*networkconnectivitypb.RemoteTransportProfile, error) { + var item *networkconnectivitypb.RemoteTransportProfile + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *RemoteTransportProfileIterator) bufLen() int { + return len(it.items) +} + +func (it *RemoteTransportProfileIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// RouteIterator manages a stream of *networkconnectivitypb.Route. +type RouteIterator struct { + items []*networkconnectivitypb.Route + 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 []*networkconnectivitypb.Route, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *RouteIterator) 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 *RouteIterator) Next() (*networkconnectivitypb.Route, error) { + var item *networkconnectivitypb.Route + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *RouteIterator) bufLen() int { + return len(it.items) +} + +func (it *RouteIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// RouteTableIterator manages a stream of *networkconnectivitypb.RouteTable. +type RouteTableIterator struct { + items []*networkconnectivitypb.RouteTable + 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 []*networkconnectivitypb.RouteTable, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *RouteTableIterator) 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 *RouteTableIterator) Next() (*networkconnectivitypb.RouteTable, error) { + var item *networkconnectivitypb.RouteTable + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *RouteTableIterator) bufLen() int { + return len(it.items) +} + +func (it *RouteTableIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SpokeIterator manages a stream of *networkconnectivitypb.Spoke. +type SpokeIterator struct { + items []*networkconnectivitypb.Spoke + 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 []*networkconnectivitypb.Spoke, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *SpokeIterator) 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 *SpokeIterator) Next() (*networkconnectivitypb.Spoke, error) { + var item *networkconnectivitypb.Spoke + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SpokeIterator) bufLen() int { + return len(it.items) +} + +func (it *SpokeIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// TransportIterator manages a stream of *networkconnectivitypb.Transport. +type TransportIterator struct { + items []*networkconnectivitypb.Transport + 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 []*networkconnectivitypb.Transport, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the [google.golang.org/api/iterator] package for details. +func (it *TransportIterator) 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 *TransportIterator) Next() (*networkconnectivitypb.Transport, error) { + var item *networkconnectivitypb.Transport + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *TransportIterator) bufLen() int { + return len(it.items) +} + +func (it *TransportIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/networkconnectivity/apiv1beta/auxiliary_go123.go b/networkconnectivity/apiv1beta/auxiliary_go123.go new file mode 100644 index 000000000000..87d026fabe90 --- /dev/null +++ b/networkconnectivity/apiv1beta/auxiliary_go123.go @@ -0,0 +1,118 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +//go:build go1.23 + +package networkconnectivity + +import ( + "iter" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "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 *DestinationIterator) All() iter.Seq2[*networkconnectivitypb.Destination, 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 *GatewayAdvertisedRouteIterator) All() iter.Seq2[*networkconnectivitypb.GatewayAdvertisedRoute, 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 *GroupIterator) All() iter.Seq2[*networkconnectivitypb.Group, 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 *HubIterator) All() iter.Seq2[*networkconnectivitypb.Hub, 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 *HubStatusEntryIterator) All() iter.Seq2[*networkconnectivitypb.HubStatusEntry, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *LocationIterator) All() iter.Seq2[*locationpb.Location, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *MulticloudDataTransferConfigIterator) All() iter.Seq2[*networkconnectivitypb.MulticloudDataTransferConfig, 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 *MulticloudDataTransferSupportedServiceIterator) All() iter.Seq2[*networkconnectivitypb.MulticloudDataTransferSupportedService, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *OperationIterator) All() iter.Seq2[*longrunningpb.Operation, error] { + return iterator.RangeAdapter(it.Next) +} + +// All returns an iterator. If an error is returned by the iterator, the +// iterator will stop after that iteration. +func (it *PolicyBasedRouteIterator) All() iter.Seq2[*networkconnectivitypb.PolicyBasedRoute, 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 *RemoteTransportProfileIterator) All() iter.Seq2[*networkconnectivitypb.RemoteTransportProfile, 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 *RouteIterator) All() iter.Seq2[*networkconnectivitypb.Route, 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 *RouteTableIterator) All() iter.Seq2[*networkconnectivitypb.RouteTable, 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 *SpokeIterator) All() iter.Seq2[*networkconnectivitypb.Spoke, 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 *TransportIterator) All() iter.Seq2[*networkconnectivitypb.Transport, error] { + return iterator.RangeAdapter(it.Next) +} diff --git a/networkconnectivity/apiv1beta/data_transfer_client.go b/networkconnectivity/apiv1beta/data_transfer_client.go new file mode 100644 index 000000000000..d45c4215740d --- /dev/null +++ b/networkconnectivity/apiv1beta/data_transfer_client.go @@ -0,0 +1,1043 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "fmt" + "log/slog" + "math" + "net/url" + "time" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + 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" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" +) + +var newDataTransferClientHook clientHook + +// DataTransferCallOptions contains the retry settings for each method of DataTransferClient. +type DataTransferCallOptions struct { + ListMulticloudDataTransferConfigs []gax.CallOption + GetMulticloudDataTransferConfig []gax.CallOption + CreateMulticloudDataTransferConfig []gax.CallOption + UpdateMulticloudDataTransferConfig []gax.CallOption + DeleteMulticloudDataTransferConfig []gax.CallOption + ListDestinations []gax.CallOption + GetDestination []gax.CallOption + CreateDestination []gax.CallOption + UpdateDestination []gax.CallOption + DeleteDestination []gax.CallOption + GetMulticloudDataTransferSupportedService []gax.CallOption + ListMulticloudDataTransferSupportedServices []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultDataTransferGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("networkconnectivity.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("networkconnectivity.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("networkconnectivity.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://networkconnectivity.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultDataTransferCallOptions() *DataTransferCallOptions { + return &DataTransferCallOptions{ + ListMulticloudDataTransferConfigs: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetMulticloudDataTransferConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateMulticloudDataTransferConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateMulticloudDataTransferConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteMulticloudDataTransferConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListDestinations: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetDestination: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateDestination: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateDestination: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteDestination: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetMulticloudDataTransferSupportedService: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListMulticloudDataTransferSupportedServices: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalDataTransferClient is an interface that defines the methods available from Network Connectivity API. +type internalDataTransferClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListMulticloudDataTransferConfigs(context.Context, *networkconnectivitypb.ListMulticloudDataTransferConfigsRequest, ...gax.CallOption) *MulticloudDataTransferConfigIterator + GetMulticloudDataTransferConfig(context.Context, *networkconnectivitypb.GetMulticloudDataTransferConfigRequest, ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) + CreateMulticloudDataTransferConfig(context.Context, *networkconnectivitypb.CreateMulticloudDataTransferConfigRequest, ...gax.CallOption) (*CreateMulticloudDataTransferConfigOperation, error) + CreateMulticloudDataTransferConfigOperation(name string) *CreateMulticloudDataTransferConfigOperation + UpdateMulticloudDataTransferConfig(context.Context, *networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest, ...gax.CallOption) (*UpdateMulticloudDataTransferConfigOperation, error) + UpdateMulticloudDataTransferConfigOperation(name string) *UpdateMulticloudDataTransferConfigOperation + DeleteMulticloudDataTransferConfig(context.Context, *networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest, ...gax.CallOption) (*DeleteMulticloudDataTransferConfigOperation, error) + DeleteMulticloudDataTransferConfigOperation(name string) *DeleteMulticloudDataTransferConfigOperation + ListDestinations(context.Context, *networkconnectivitypb.ListDestinationsRequest, ...gax.CallOption) *DestinationIterator + GetDestination(context.Context, *networkconnectivitypb.GetDestinationRequest, ...gax.CallOption) (*networkconnectivitypb.Destination, error) + CreateDestination(context.Context, *networkconnectivitypb.CreateDestinationRequest, ...gax.CallOption) (*CreateDestinationOperation, error) + CreateDestinationOperation(name string) *CreateDestinationOperation + UpdateDestination(context.Context, *networkconnectivitypb.UpdateDestinationRequest, ...gax.CallOption) (*UpdateDestinationOperation, error) + UpdateDestinationOperation(name string) *UpdateDestinationOperation + DeleteDestination(context.Context, *networkconnectivitypb.DeleteDestinationRequest, ...gax.CallOption) (*DeleteDestinationOperation, error) + DeleteDestinationOperation(name string) *DeleteDestinationOperation + GetMulticloudDataTransferSupportedService(context.Context, *networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest, ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferSupportedService, error) + ListMulticloudDataTransferSupportedServices(context.Context, *networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest, ...gax.CallOption) *MulticloudDataTransferSupportedServiceIterator + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// DataTransferClient is a client for interacting with Network Connectivity API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// DataTransferService is the service for the Data Transfer API. +type DataTransferClient struct { + // The internal transport-dependent client. + internalClient internalDataTransferClient + + // The call options for this service. + CallOptions *DataTransferCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *DataTransferClient) 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 *DataTransferClient) 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 *DataTransferClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListMulticloudDataTransferConfigs lists the MulticloudDataTransferConfig resources in a specified project +// and location. +func (c *DataTransferClient) ListMulticloudDataTransferConfigs(ctx context.Context, req *networkconnectivitypb.ListMulticloudDataTransferConfigsRequest, opts ...gax.CallOption) *MulticloudDataTransferConfigIterator { + return c.internalClient.ListMulticloudDataTransferConfigs(ctx, req, opts...) +} + +// GetMulticloudDataTransferConfig gets the details of a MulticloudDataTransferConfig resource. +func (c *DataTransferClient) GetMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.GetMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, error) { + return c.internalClient.GetMulticloudDataTransferConfig(ctx, req, opts...) +} + +// CreateMulticloudDataTransferConfig creates a MulticloudDataTransferConfig resource in a specified project +// and location. +func (c *DataTransferClient) CreateMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.CreateMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*CreateMulticloudDataTransferConfigOperation, error) { + return c.internalClient.CreateMulticloudDataTransferConfig(ctx, req, opts...) +} + +// CreateMulticloudDataTransferConfigOperation returns a new CreateMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created CreateMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *DataTransferClient) CreateMulticloudDataTransferConfigOperation(name string) *CreateMulticloudDataTransferConfigOperation { + return c.internalClient.CreateMulticloudDataTransferConfigOperation(name) +} + +// UpdateMulticloudDataTransferConfig updates a MulticloudDataTransferConfig resource in a specified project +// and location. +func (c *DataTransferClient) UpdateMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*UpdateMulticloudDataTransferConfigOperation, error) { + return c.internalClient.UpdateMulticloudDataTransferConfig(ctx, req, opts...) +} + +// UpdateMulticloudDataTransferConfigOperation returns a new UpdateMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created UpdateMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *DataTransferClient) UpdateMulticloudDataTransferConfigOperation(name string) *UpdateMulticloudDataTransferConfigOperation { + return c.internalClient.UpdateMulticloudDataTransferConfigOperation(name) +} + +// DeleteMulticloudDataTransferConfig deletes a MulticloudDataTransferConfig resource. +func (c *DataTransferClient) DeleteMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*DeleteMulticloudDataTransferConfigOperation, error) { + return c.internalClient.DeleteMulticloudDataTransferConfig(ctx, req, opts...) +} + +// DeleteMulticloudDataTransferConfigOperation returns a new DeleteMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created DeleteMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *DataTransferClient) DeleteMulticloudDataTransferConfigOperation(name string) *DeleteMulticloudDataTransferConfigOperation { + return c.internalClient.DeleteMulticloudDataTransferConfigOperation(name) +} + +// ListDestinations lists the Destination resources in a specified project and location. +func (c *DataTransferClient) ListDestinations(ctx context.Context, req *networkconnectivitypb.ListDestinationsRequest, opts ...gax.CallOption) *DestinationIterator { + return c.internalClient.ListDestinations(ctx, req, opts...) +} + +// GetDestination gets the details of a Destination resource. +func (c *DataTransferClient) GetDestination(ctx context.Context, req *networkconnectivitypb.GetDestinationRequest, opts ...gax.CallOption) (*networkconnectivitypb.Destination, error) { + return c.internalClient.GetDestination(ctx, req, opts...) +} + +// CreateDestination creates a Destination resource in a specified project and location. +func (c *DataTransferClient) CreateDestination(ctx context.Context, req *networkconnectivitypb.CreateDestinationRequest, opts ...gax.CallOption) (*CreateDestinationOperation, error) { + return c.internalClient.CreateDestination(ctx, req, opts...) +} + +// CreateDestinationOperation returns a new CreateDestinationOperation from a given name. +// The name must be that of a previously created CreateDestinationOperation, possibly from a different process. +func (c *DataTransferClient) CreateDestinationOperation(name string) *CreateDestinationOperation { + return c.internalClient.CreateDestinationOperation(name) +} + +// UpdateDestination updates a Destination resource in a specified project and location. +func (c *DataTransferClient) UpdateDestination(ctx context.Context, req *networkconnectivitypb.UpdateDestinationRequest, opts ...gax.CallOption) (*UpdateDestinationOperation, error) { + return c.internalClient.UpdateDestination(ctx, req, opts...) +} + +// UpdateDestinationOperation returns a new UpdateDestinationOperation from a given name. +// The name must be that of a previously created UpdateDestinationOperation, possibly from a different process. +func (c *DataTransferClient) UpdateDestinationOperation(name string) *UpdateDestinationOperation { + return c.internalClient.UpdateDestinationOperation(name) +} + +// DeleteDestination deletes a Destination resource. +func (c *DataTransferClient) DeleteDestination(ctx context.Context, req *networkconnectivitypb.DeleteDestinationRequest, opts ...gax.CallOption) (*DeleteDestinationOperation, error) { + return c.internalClient.DeleteDestination(ctx, req, opts...) +} + +// DeleteDestinationOperation returns a new DeleteDestinationOperation from a given name. +// The name must be that of a previously created DeleteDestinationOperation, possibly from a different process. +func (c *DataTransferClient) DeleteDestinationOperation(name string) *DeleteDestinationOperation { + return c.internalClient.DeleteDestinationOperation(name) +} + +// GetMulticloudDataTransferSupportedService gets the details of a service that is supported for Data Transfer +// Essentials. +func (c *DataTransferClient) GetMulticloudDataTransferSupportedService(ctx context.Context, req *networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferSupportedService, error) { + return c.internalClient.GetMulticloudDataTransferSupportedService(ctx, req, opts...) +} + +// ListMulticloudDataTransferSupportedServices lists the services in the project for a region that are supported for +// Data Transfer Essentials. +func (c *DataTransferClient) ListMulticloudDataTransferSupportedServices(ctx context.Context, req *networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest, opts ...gax.CallOption) *MulticloudDataTransferSupportedServiceIterator { + return c.internalClient.ListMulticloudDataTransferSupportedServices(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *DataTransferClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *DataTransferClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *DataTransferClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *DataTransferClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *DataTransferClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *DataTransferClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *DataTransferClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *DataTransferClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *DataTransferClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// dataTransferGRPCClient is a client for interacting with Network Connectivity API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type dataTransferGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing DataTransferClient + CallOptions **DataTransferCallOptions + + // The gRPC API client. + dataTransferClient networkconnectivitypb.DataTransferServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewDataTransferClient creates a new data transfer service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// DataTransferService is the service for the Data Transfer API. +func NewDataTransferClient(ctx context.Context, opts ...option.ClientOption) (*DataTransferClient, error) { + clientOpts := defaultDataTransferGRPCClientOptions() + if newDataTransferClientHook != nil { + hookOpts, err := newDataTransferClientHook(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 := DataTransferClient{CallOptions: defaultDataTransferCallOptions()} + + c := &dataTransferGRPCClient{ + connPool: connPool, + dataTransferClient: networkconnectivitypb.NewDataTransferServiceClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *dataTransferGRPCClient) 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 *dataTransferGRPCClient) 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 *dataTransferGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *dataTransferGRPCClient) ListMulticloudDataTransferConfigs(ctx context.Context, req *networkconnectivitypb.ListMulticloudDataTransferConfigsRequest, opts ...gax.CallOption) *MulticloudDataTransferConfigIterator { + 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).ListMulticloudDataTransferConfigs[0:len((*c.CallOptions).ListMulticloudDataTransferConfigs):len((*c.CallOptions).ListMulticloudDataTransferConfigs)], opts...) + it := &MulticloudDataTransferConfigIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListMulticloudDataTransferConfigsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.MulticloudDataTransferConfig, string, error) { + resp := &networkconnectivitypb.ListMulticloudDataTransferConfigsResponse{} + 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.dataTransferClient.ListMulticloudDataTransferConfigs, req, settings.GRPC, c.logger, "ListMulticloudDataTransferConfigs") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetMulticloudDataTransferConfigs(), 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 *dataTransferGRPCClient) GetMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.GetMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferConfig, 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).GetMulticloudDataTransferConfig[0:len((*c.CallOptions).GetMulticloudDataTransferConfig):len((*c.CallOptions).GetMulticloudDataTransferConfig)], opts...) + var resp *networkconnectivitypb.MulticloudDataTransferConfig + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.GetMulticloudDataTransferConfig, req, settings.GRPC, c.logger, "GetMulticloudDataTransferConfig") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) CreateMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.CreateMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*CreateMulticloudDataTransferConfigOperation, 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).CreateMulticloudDataTransferConfig[0:len((*c.CallOptions).CreateMulticloudDataTransferConfig):len((*c.CallOptions).CreateMulticloudDataTransferConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.CreateMulticloudDataTransferConfig, req, settings.GRPC, c.logger, "CreateMulticloudDataTransferConfig") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) UpdateMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*UpdateMulticloudDataTransferConfigOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "multicloud_data_transfer_config.name", url.QueryEscape(req.GetMulticloudDataTransferConfig().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateMulticloudDataTransferConfig[0:len((*c.CallOptions).UpdateMulticloudDataTransferConfig):len((*c.CallOptions).UpdateMulticloudDataTransferConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.UpdateMulticloudDataTransferConfig, req, settings.GRPC, c.logger, "UpdateMulticloudDataTransferConfig") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) DeleteMulticloudDataTransferConfig(ctx context.Context, req *networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest, opts ...gax.CallOption) (*DeleteMulticloudDataTransferConfigOperation, 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).DeleteMulticloudDataTransferConfig[0:len((*c.CallOptions).DeleteMulticloudDataTransferConfig):len((*c.CallOptions).DeleteMulticloudDataTransferConfig)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.DeleteMulticloudDataTransferConfig, req, settings.GRPC, c.logger, "DeleteMulticloudDataTransferConfig") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) ListDestinations(ctx context.Context, req *networkconnectivitypb.ListDestinationsRequest, opts ...gax.CallOption) *DestinationIterator { + 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).ListDestinations[0:len((*c.CallOptions).ListDestinations):len((*c.CallOptions).ListDestinations)], opts...) + it := &DestinationIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListDestinationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Destination, string, error) { + resp := &networkconnectivitypb.ListDestinationsResponse{} + 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.dataTransferClient.ListDestinations, req, settings.GRPC, c.logger, "ListDestinations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDestinations(), 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 *dataTransferGRPCClient) GetDestination(ctx context.Context, req *networkconnectivitypb.GetDestinationRequest, opts ...gax.CallOption) (*networkconnectivitypb.Destination, 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).GetDestination[0:len((*c.CallOptions).GetDestination):len((*c.CallOptions).GetDestination)], opts...) + var resp *networkconnectivitypb.Destination + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.GetDestination, req, settings.GRPC, c.logger, "GetDestination") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) CreateDestination(ctx context.Context, req *networkconnectivitypb.CreateDestinationRequest, opts ...gax.CallOption) (*CreateDestinationOperation, 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).CreateDestination[0:len((*c.CallOptions).CreateDestination):len((*c.CallOptions).CreateDestination)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.CreateDestination, req, settings.GRPC, c.logger, "CreateDestination") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) UpdateDestination(ctx context.Context, req *networkconnectivitypb.UpdateDestinationRequest, opts ...gax.CallOption) (*UpdateDestinationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "destination.name", url.QueryEscape(req.GetDestination().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateDestination[0:len((*c.CallOptions).UpdateDestination):len((*c.CallOptions).UpdateDestination)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.UpdateDestination, req, settings.GRPC, c.logger, "UpdateDestination") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) DeleteDestination(ctx context.Context, req *networkconnectivitypb.DeleteDestinationRequest, opts ...gax.CallOption) (*DeleteDestinationOperation, 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).DeleteDestination[0:len((*c.CallOptions).DeleteDestination):len((*c.CallOptions).DeleteDestination)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.DeleteDestination, req, settings.GRPC, c.logger, "DeleteDestination") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *dataTransferGRPCClient) GetMulticloudDataTransferSupportedService(ctx context.Context, req *networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest, opts ...gax.CallOption) (*networkconnectivitypb.MulticloudDataTransferSupportedService, 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).GetMulticloudDataTransferSupportedService[0:len((*c.CallOptions).GetMulticloudDataTransferSupportedService):len((*c.CallOptions).GetMulticloudDataTransferSupportedService)], opts...) + var resp *networkconnectivitypb.MulticloudDataTransferSupportedService + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.dataTransferClient.GetMulticloudDataTransferSupportedService, req, settings.GRPC, c.logger, "GetMulticloudDataTransferSupportedService") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) ListMulticloudDataTransferSupportedServices(ctx context.Context, req *networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest, opts ...gax.CallOption) *MulticloudDataTransferSupportedServiceIterator { + 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).ListMulticloudDataTransferSupportedServices[0:len((*c.CallOptions).ListMulticloudDataTransferSupportedServices):len((*c.CallOptions).ListMulticloudDataTransferSupportedServices)], opts...) + it := &MulticloudDataTransferSupportedServiceIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.MulticloudDataTransferSupportedService, string, error) { + resp := &networkconnectivitypb.ListMulticloudDataTransferSupportedServicesResponse{} + 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.dataTransferClient.ListMulticloudDataTransferSupportedServices, req, settings.GRPC, c.logger, "ListMulticloudDataTransferSupportedServices") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetMulticloudDataTransferSupportedServices(), 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 *dataTransferGRPCClient) 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 *dataTransferGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *dataTransferGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.GetIamPolicy, req, settings.GRPC, c.logger, "GetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.SetIamPolicy, req, settings.GRPC, c.logger, "SetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.TestIamPermissions, req, settings.GRPC, c.logger, "TestIamPermissions") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *dataTransferGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *dataTransferGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *dataTransferGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateDestinationOperation returns a new CreateDestinationOperation from a given name. +// The name must be that of a previously created CreateDestinationOperation, possibly from a different process. +func (c *dataTransferGRPCClient) CreateDestinationOperation(name string) *CreateDestinationOperation { + return &CreateDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateMulticloudDataTransferConfigOperation returns a new CreateMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created CreateMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *dataTransferGRPCClient) CreateMulticloudDataTransferConfigOperation(name string) *CreateMulticloudDataTransferConfigOperation { + return &CreateMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteDestinationOperation returns a new DeleteDestinationOperation from a given name. +// The name must be that of a previously created DeleteDestinationOperation, possibly from a different process. +func (c *dataTransferGRPCClient) DeleteDestinationOperation(name string) *DeleteDestinationOperation { + return &DeleteDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteMulticloudDataTransferConfigOperation returns a new DeleteMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created DeleteMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *dataTransferGRPCClient) DeleteMulticloudDataTransferConfigOperation(name string) *DeleteMulticloudDataTransferConfigOperation { + return &DeleteMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateDestinationOperation returns a new UpdateDestinationOperation from a given name. +// The name must be that of a previously created UpdateDestinationOperation, possibly from a different process. +func (c *dataTransferGRPCClient) UpdateDestinationOperation(name string) *UpdateDestinationOperation { + return &UpdateDestinationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateMulticloudDataTransferConfigOperation returns a new UpdateMulticloudDataTransferConfigOperation from a given name. +// The name must be that of a previously created UpdateMulticloudDataTransferConfigOperation, possibly from a different process. +func (c *dataTransferGRPCClient) UpdateMulticloudDataTransferConfigOperation(name string) *UpdateMulticloudDataTransferConfigOperation { + return &UpdateMulticloudDataTransferConfigOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/networkconnectivity/apiv1beta/data_transfer_client_example_go123_test.go b/networkconnectivity/apiv1beta/data_transfer_client_example_go123_test.go new file mode 100644 index 000000000000..ad5d4f90bc0e --- /dev/null +++ b/networkconnectivity/apiv1beta/data_transfer_client_example_go123_test.go @@ -0,0 +1,158 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +//go:build go1.23 + +package networkconnectivity_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleDataTransferClient_ListDestinations_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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListDestinationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListDestinationsRequest. + } + for resp, err := range c.ListDestinations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTransferClient_ListMulticloudDataTransferConfigs_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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferConfigsRequest. + } + for resp, err := range c.ListMulticloudDataTransferConfigs(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTransferClient_ListMulticloudDataTransferSupportedServices_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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferSupportedServicesRequest. + } + for resp, err := range c.ListMulticloudDataTransferSupportedServices(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTransferClient_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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleDataTransferClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/networkconnectivity/apiv1beta/data_transfer_client_example_test.go b/networkconnectivity/apiv1beta/data_transfer_client_example_test.go new file mode 100644 index 000000000000..2330520cb847 --- /dev/null +++ b/networkconnectivity/apiv1beta/data_transfer_client_example_test.go @@ -0,0 +1,652 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity_test + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewDataTransferClient() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleDataTransferClient_CreateDestination() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateDestinationRequest. + } + op, err := c.CreateDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_CreateMulticloudDataTransferConfig() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateMulticloudDataTransferConfigRequest. + } + op, err := c.CreateMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_DeleteDestination() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteDestinationRequest. + } + op, err := c.DeleteDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTransferClient_DeleteMulticloudDataTransferConfig() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteMulticloudDataTransferConfigRequest. + } + op, err := c.DeleteMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTransferClient_GetDestination() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetDestinationRequest. + } + resp, err := c.GetDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_GetMulticloudDataTransferConfig() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetMulticloudDataTransferConfigRequest. + } + resp, err := c.GetMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_GetMulticloudDataTransferSupportedService() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetMulticloudDataTransferSupportedServiceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetMulticloudDataTransferSupportedServiceRequest. + } + resp, err := c.GetMulticloudDataTransferSupportedService(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_ListDestinations() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListDestinationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListDestinationsRequest. + } + it := c.ListDestinations(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.(*networkconnectivitypb.ListDestinationsResponse) + } +} + +func ExampleDataTransferClient_ListMulticloudDataTransferConfigs() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferConfigsRequest. + } + it := c.ListMulticloudDataTransferConfigs(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.(*networkconnectivitypb.ListMulticloudDataTransferConfigsResponse) + } +} + +func ExampleDataTransferClient_ListMulticloudDataTransferSupportedServices() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListMulticloudDataTransferSupportedServicesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListMulticloudDataTransferSupportedServicesRequest. + } + it := c.ListMulticloudDataTransferSupportedServices(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.(*networkconnectivitypb.ListMulticloudDataTransferSupportedServicesResponse) + } +} + +func ExampleDataTransferClient_UpdateDestination() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateDestinationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateDestinationRequest. + } + op, err := c.UpdateDestination(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_UpdateMulticloudDataTransferConfig() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateMulticloudDataTransferConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateMulticloudDataTransferConfigRequest. + } + op, err := c.UpdateMulticloudDataTransferConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_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 := networkconnectivity.NewDataTransferClient(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 ExampleDataTransferClient_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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExampleDataTransferClient_GetIamPolicy() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_SetIamPolicy() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_TestIamPermissions() { + 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 := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTransferClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleDataTransferClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleDataTransferClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewDataTransferClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/networkconnectivity/apiv1beta/doc.go b/networkconnectivity/apiv1beta/doc.go new file mode 100644 index 000000000000..d6c5867ff58a --- /dev/null +++ b/networkconnectivity/apiv1beta/doc.go @@ -0,0 +1,90 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// Package networkconnectivity is an auto-generated package for the +// Network Connectivity API. +// +// This API enables connectivity with and between Google Cloud resources. +// +// 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/networkconnectivity/apiv1beta@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 := networkconnectivity.NewDataTransferClient(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 := &networkconnectivitypb.CreateDestinationRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateDestinationRequest. +// } +// op, err := c.CreateDestination(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// +// resp, err := op.Wait(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Use of Context +// +// The ctx passed to NewDataTransferClient 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 networkconnectivity // import "cloud.google.com/go/networkconnectivity/apiv1beta" diff --git a/networkconnectivity/apiv1beta/gapic_metadata.json b/networkconnectivity/apiv1beta/gapic_metadata.json new file mode 100644 index 000000000000..9e345aead581 --- /dev/null +++ b/networkconnectivity/apiv1beta/gapic_metadata.json @@ -0,0 +1,485 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.networkconnectivity.v1beta", + "libraryPackage": "cloud.google.com/go/networkconnectivity/apiv1beta", + "services": { + "DataTransferService": { + "clients": { + "grpc": { + "libraryClient": "DataTransferClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateDestination": { + "methods": [ + "CreateDestination" + ] + }, + "CreateMulticloudDataTransferConfig": { + "methods": [ + "CreateMulticloudDataTransferConfig" + ] + }, + "DeleteDestination": { + "methods": [ + "DeleteDestination" + ] + }, + "DeleteMulticloudDataTransferConfig": { + "methods": [ + "DeleteMulticloudDataTransferConfig" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetDestination": { + "methods": [ + "GetDestination" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetMulticloudDataTransferConfig": { + "methods": [ + "GetMulticloudDataTransferConfig" + ] + }, + "GetMulticloudDataTransferSupportedService": { + "methods": [ + "GetMulticloudDataTransferSupportedService" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListDestinations": { + "methods": [ + "ListDestinations" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListMulticloudDataTransferConfigs": { + "methods": [ + "ListMulticloudDataTransferConfigs" + ] + }, + "ListMulticloudDataTransferSupportedServices": { + "methods": [ + "ListMulticloudDataTransferSupportedServices" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateDestination": { + "methods": [ + "UpdateDestination" + ] + }, + "UpdateMulticloudDataTransferConfig": { + "methods": [ + "UpdateMulticloudDataTransferConfig" + ] + } + } + } + } + }, + "HubService": { + "clients": { + "grpc": { + "libraryClient": "HubClient", + "rpcs": { + "AcceptHubSpoke": { + "methods": [ + "AcceptHubSpoke" + ] + }, + "AcceptSpokeUpdate": { + "methods": [ + "AcceptSpokeUpdate" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateGatewayAdvertisedRoute": { + "methods": [ + "CreateGatewayAdvertisedRoute" + ] + }, + "CreateHub": { + "methods": [ + "CreateHub" + ] + }, + "CreateSpoke": { + "methods": [ + "CreateSpoke" + ] + }, + "DeleteGatewayAdvertisedRoute": { + "methods": [ + "DeleteGatewayAdvertisedRoute" + ] + }, + "DeleteHub": { + "methods": [ + "DeleteHub" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSpoke": { + "methods": [ + "DeleteSpoke" + ] + }, + "GetGatewayAdvertisedRoute": { + "methods": [ + "GetGatewayAdvertisedRoute" + ] + }, + "GetGroup": { + "methods": [ + "GetGroup" + ] + }, + "GetHub": { + "methods": [ + "GetHub" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetRoute": { + "methods": [ + "GetRoute" + ] + }, + "GetRouteTable": { + "methods": [ + "GetRouteTable" + ] + }, + "GetSpoke": { + "methods": [ + "GetSpoke" + ] + }, + "ListGatewayAdvertisedRoutes": { + "methods": [ + "ListGatewayAdvertisedRoutes" + ] + }, + "ListGroups": { + "methods": [ + "ListGroups" + ] + }, + "ListHubSpokes": { + "methods": [ + "ListHubSpokes" + ] + }, + "ListHubs": { + "methods": [ + "ListHubs" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListRouteTables": { + "methods": [ + "ListRouteTables" + ] + }, + "ListRoutes": { + "methods": [ + "ListRoutes" + ] + }, + "ListSpokes": { + "methods": [ + "ListSpokes" + ] + }, + "QueryHubStatus": { + "methods": [ + "QueryHubStatus" + ] + }, + "RejectHubSpoke": { + "methods": [ + "RejectHubSpoke" + ] + }, + "RejectSpokeUpdate": { + "methods": [ + "RejectSpokeUpdate" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateGatewayAdvertisedRoute": { + "methods": [ + "UpdateGatewayAdvertisedRoute" + ] + }, + "UpdateGroup": { + "methods": [ + "UpdateGroup" + ] + }, + "UpdateHub": { + "methods": [ + "UpdateHub" + ] + }, + "UpdateSpoke": { + "methods": [ + "UpdateSpoke" + ] + } + } + } + } + }, + "PolicyBasedRoutingService": { + "clients": { + "grpc": { + "libraryClient": "PolicyBasedRoutingClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreatePolicyBasedRoute": { + "methods": [ + "CreatePolicyBasedRoute" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeletePolicyBasedRoute": { + "methods": [ + "DeletePolicyBasedRoute" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetPolicyBasedRoute": { + "methods": [ + "GetPolicyBasedRoute" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListPolicyBasedRoutes": { + "methods": [ + "ListPolicyBasedRoutes" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + } + } + } + } + }, + "TransportManager": { + "clients": { + "grpc": { + "libraryClient": "TransportManagerClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateTransport": { + "methods": [ + "CreateTransport" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteTransport": { + "methods": [ + "DeleteTransport" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetRemoteTransportProfile": { + "methods": [ + "GetRemoteTransportProfile" + ] + }, + "GetStatus": { + "methods": [ + "GetStatus" + ] + }, + "GetTransport": { + "methods": [ + "GetTransport" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListRemoteTransportProfiles": { + "methods": [ + "ListRemoteTransportProfiles" + ] + }, + "ListTransports": { + "methods": [ + "ListTransports" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateTransport": { + "methods": [ + "UpdateTransport" + ] + } + } + } + } + } + } +} diff --git a/networkconnectivity/apiv1beta/helpers.go b/networkconnectivity/apiv1beta/helpers.go new file mode 100644 index 000000000000..f8bf9e0e8d6d --- /dev/null +++ b/networkconnectivity/apiv1beta/helpers.go @@ -0,0 +1,65 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "fmt" + "log/slog" + + "github.com/googleapis/gax-go/v2/internallog/grpclog" + "google.golang.org/api/option" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/runtime/protoimpl" +) + +const serviceName = "networkconnectivity.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 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/networkconnectivity/apiv1beta/hub_client.go b/networkconnectivity/apiv1beta/hub_client.go new file mode 100644 index 000000000000..3b3b5477982b --- /dev/null +++ b/networkconnectivity/apiv1beta/hub_client.go @@ -0,0 +1,1974 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "fmt" + "log/slog" + "math" + "net/url" + "time" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + 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" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/proto" +) + +var newHubClientHook clientHook + +// HubCallOptions contains the retry settings for each method of HubClient. +type HubCallOptions struct { + ListHubs []gax.CallOption + GetHub []gax.CallOption + CreateHub []gax.CallOption + UpdateHub []gax.CallOption + DeleteHub []gax.CallOption + ListHubSpokes []gax.CallOption + QueryHubStatus []gax.CallOption + ListSpokes []gax.CallOption + GetSpoke []gax.CallOption + CreateSpoke []gax.CallOption + UpdateSpoke []gax.CallOption + RejectHubSpoke []gax.CallOption + AcceptHubSpoke []gax.CallOption + AcceptSpokeUpdate []gax.CallOption + RejectSpokeUpdate []gax.CallOption + DeleteSpoke []gax.CallOption + GetRouteTable []gax.CallOption + GetRoute []gax.CallOption + ListRoutes []gax.CallOption + ListRouteTables []gax.CallOption + GetGroup []gax.CallOption + ListGroups []gax.CallOption + UpdateGroup []gax.CallOption + CreateGatewayAdvertisedRoute []gax.CallOption + GetGatewayAdvertisedRoute []gax.CallOption + ListGatewayAdvertisedRoutes []gax.CallOption + UpdateGatewayAdvertisedRoute []gax.CallOption + DeleteGatewayAdvertisedRoute []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultHubGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("networkconnectivity.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("networkconnectivity.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("networkconnectivity.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://networkconnectivity.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultHubCallOptions() *HubCallOptions { + return &HubCallOptions{ + ListHubs: []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, + }) + }), + }, + GetHub: []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, + }) + }), + }, + CreateHub: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateHub: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteHub: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListHubSpokes: []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, + }) + }), + }, + QueryHubStatus: []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, + }) + }), + }, + ListSpokes: []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, + }) + }), + }, + GetSpoke: []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, + }) + }), + }, + CreateSpoke: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateSpoke: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + RejectHubSpoke: []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, + }) + }), + }, + AcceptHubSpoke: []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, + }) + }), + }, + AcceptSpokeUpdate: []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, + }) + }), + }, + RejectSpokeUpdate: []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, + }) + }), + }, + DeleteSpoke: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetRouteTable: []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, + }) + }), + }, + GetRoute: []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, + }) + }), + }, + ListRoutes: []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, + }) + }), + }, + ListRouteTables: []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, + }) + }), + }, + GetGroup: []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, + }) + }), + }, + ListGroups: []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, + }) + }), + }, + UpdateGroup: []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, + }) + }), + }, + CreateGatewayAdvertisedRoute: []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, + }) + }), + }, + GetGatewayAdvertisedRoute: []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, + }) + }), + }, + ListGatewayAdvertisedRoutes: []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, + }) + }), + }, + UpdateGatewayAdvertisedRoute: []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, + }) + }), + }, + DeleteGatewayAdvertisedRoute: []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{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalHubClient is an interface that defines the methods available from Network Connectivity API. +type internalHubClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListHubs(context.Context, *networkconnectivitypb.ListHubsRequest, ...gax.CallOption) *HubIterator + GetHub(context.Context, *networkconnectivitypb.GetHubRequest, ...gax.CallOption) (*networkconnectivitypb.Hub, error) + CreateHub(context.Context, *networkconnectivitypb.CreateHubRequest, ...gax.CallOption) (*CreateHubOperation, error) + CreateHubOperation(name string) *CreateHubOperation + UpdateHub(context.Context, *networkconnectivitypb.UpdateHubRequest, ...gax.CallOption) (*UpdateHubOperation, error) + UpdateHubOperation(name string) *UpdateHubOperation + DeleteHub(context.Context, *networkconnectivitypb.DeleteHubRequest, ...gax.CallOption) (*DeleteHubOperation, error) + DeleteHubOperation(name string) *DeleteHubOperation + ListHubSpokes(context.Context, *networkconnectivitypb.ListHubSpokesRequest, ...gax.CallOption) *SpokeIterator + QueryHubStatus(context.Context, *networkconnectivitypb.QueryHubStatusRequest, ...gax.CallOption) *HubStatusEntryIterator + ListSpokes(context.Context, *networkconnectivitypb.ListSpokesRequest, ...gax.CallOption) *SpokeIterator + GetSpoke(context.Context, *networkconnectivitypb.GetSpokeRequest, ...gax.CallOption) (*networkconnectivitypb.Spoke, error) + CreateSpoke(context.Context, *networkconnectivitypb.CreateSpokeRequest, ...gax.CallOption) (*CreateSpokeOperation, error) + CreateSpokeOperation(name string) *CreateSpokeOperation + UpdateSpoke(context.Context, *networkconnectivitypb.UpdateSpokeRequest, ...gax.CallOption) (*UpdateSpokeOperation, error) + UpdateSpokeOperation(name string) *UpdateSpokeOperation + RejectHubSpoke(context.Context, *networkconnectivitypb.RejectHubSpokeRequest, ...gax.CallOption) (*RejectHubSpokeOperation, error) + RejectHubSpokeOperation(name string) *RejectHubSpokeOperation + AcceptHubSpoke(context.Context, *networkconnectivitypb.AcceptHubSpokeRequest, ...gax.CallOption) (*AcceptHubSpokeOperation, error) + AcceptHubSpokeOperation(name string) *AcceptHubSpokeOperation + AcceptSpokeUpdate(context.Context, *networkconnectivitypb.AcceptSpokeUpdateRequest, ...gax.CallOption) (*AcceptSpokeUpdateOperation, error) + AcceptSpokeUpdateOperation(name string) *AcceptSpokeUpdateOperation + RejectSpokeUpdate(context.Context, *networkconnectivitypb.RejectSpokeUpdateRequest, ...gax.CallOption) (*RejectSpokeUpdateOperation, error) + RejectSpokeUpdateOperation(name string) *RejectSpokeUpdateOperation + DeleteSpoke(context.Context, *networkconnectivitypb.DeleteSpokeRequest, ...gax.CallOption) (*DeleteSpokeOperation, error) + DeleteSpokeOperation(name string) *DeleteSpokeOperation + GetRouteTable(context.Context, *networkconnectivitypb.GetRouteTableRequest, ...gax.CallOption) (*networkconnectivitypb.RouteTable, error) + GetRoute(context.Context, *networkconnectivitypb.GetRouteRequest, ...gax.CallOption) (*networkconnectivitypb.Route, error) + ListRoutes(context.Context, *networkconnectivitypb.ListRoutesRequest, ...gax.CallOption) *RouteIterator + ListRouteTables(context.Context, *networkconnectivitypb.ListRouteTablesRequest, ...gax.CallOption) *RouteTableIterator + GetGroup(context.Context, *networkconnectivitypb.GetGroupRequest, ...gax.CallOption) (*networkconnectivitypb.Group, error) + ListGroups(context.Context, *networkconnectivitypb.ListGroupsRequest, ...gax.CallOption) *GroupIterator + UpdateGroup(context.Context, *networkconnectivitypb.UpdateGroupRequest, ...gax.CallOption) (*UpdateGroupOperation, error) + UpdateGroupOperation(name string) *UpdateGroupOperation + CreateGatewayAdvertisedRoute(context.Context, *networkconnectivitypb.CreateGatewayAdvertisedRouteRequest, ...gax.CallOption) (*CreateGatewayAdvertisedRouteOperation, error) + CreateGatewayAdvertisedRouteOperation(name string) *CreateGatewayAdvertisedRouteOperation + GetGatewayAdvertisedRoute(context.Context, *networkconnectivitypb.GetGatewayAdvertisedRouteRequest, ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) + ListGatewayAdvertisedRoutes(context.Context, *networkconnectivitypb.ListGatewayAdvertisedRoutesRequest, ...gax.CallOption) *GatewayAdvertisedRouteIterator + UpdateGatewayAdvertisedRoute(context.Context, *networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest, ...gax.CallOption) (*UpdateGatewayAdvertisedRouteOperation, error) + UpdateGatewayAdvertisedRouteOperation(name string) *UpdateGatewayAdvertisedRouteOperation + DeleteGatewayAdvertisedRoute(context.Context, *networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest, ...gax.CallOption) (*DeleteGatewayAdvertisedRouteOperation, error) + DeleteGatewayAdvertisedRouteOperation(name string) *DeleteGatewayAdvertisedRouteOperation + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// HubClient is a client for interacting with Network Connectivity API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Network Connectivity Center is a hub-and-spoke abstraction for network +// connectivity management in Google Cloud. It reduces operational complexity +// through a simple, centralized connectivity management model. +type HubClient struct { + // The internal transport-dependent client. + internalClient internalHubClient + + // The call options for this service. + CallOptions *HubCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *HubClient) 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 *HubClient) 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 *HubClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListHubs lists the Network Connectivity Center hubs associated with a given project. +func (c *HubClient) ListHubs(ctx context.Context, req *networkconnectivitypb.ListHubsRequest, opts ...gax.CallOption) *HubIterator { + return c.internalClient.ListHubs(ctx, req, opts...) +} + +// GetHub gets details about a Network Connectivity Center hub. +func (c *HubClient) GetHub(ctx context.Context, req *networkconnectivitypb.GetHubRequest, opts ...gax.CallOption) (*networkconnectivitypb.Hub, error) { + return c.internalClient.GetHub(ctx, req, opts...) +} + +// CreateHub creates a new Network Connectivity Center hub in the specified project. +func (c *HubClient) CreateHub(ctx context.Context, req *networkconnectivitypb.CreateHubRequest, opts ...gax.CallOption) (*CreateHubOperation, error) { + return c.internalClient.CreateHub(ctx, req, opts...) +} + +// CreateHubOperation returns a new CreateHubOperation from a given name. +// The name must be that of a previously created CreateHubOperation, possibly from a different process. +func (c *HubClient) CreateHubOperation(name string) *CreateHubOperation { + return c.internalClient.CreateHubOperation(name) +} + +// UpdateHub updates the description and/or labels of a Network Connectivity Center +// hub. +func (c *HubClient) UpdateHub(ctx context.Context, req *networkconnectivitypb.UpdateHubRequest, opts ...gax.CallOption) (*UpdateHubOperation, error) { + return c.internalClient.UpdateHub(ctx, req, opts...) +} + +// UpdateHubOperation returns a new UpdateHubOperation from a given name. +// The name must be that of a previously created UpdateHubOperation, possibly from a different process. +func (c *HubClient) UpdateHubOperation(name string) *UpdateHubOperation { + return c.internalClient.UpdateHubOperation(name) +} + +// DeleteHub deletes a Network Connectivity Center hub. +func (c *HubClient) DeleteHub(ctx context.Context, req *networkconnectivitypb.DeleteHubRequest, opts ...gax.CallOption) (*DeleteHubOperation, error) { + return c.internalClient.DeleteHub(ctx, req, opts...) +} + +// DeleteHubOperation returns a new DeleteHubOperation from a given name. +// The name must be that of a previously created DeleteHubOperation, possibly from a different process. +func (c *HubClient) DeleteHubOperation(name string) *DeleteHubOperation { + return c.internalClient.DeleteHubOperation(name) +} + +// ListHubSpokes lists the Network Connectivity Center spokes associated with a +// specified hub and location. The list includes both spokes that are attached +// to the hub and spokes that have been proposed but not yet accepted. +func (c *HubClient) ListHubSpokes(ctx context.Context, req *networkconnectivitypb.ListHubSpokesRequest, opts ...gax.CallOption) *SpokeIterator { + return c.internalClient.ListHubSpokes(ctx, req, opts...) +} + +// QueryHubStatus query the Private Service Connect propagation status of a Network +// Connectivity Center hub. +func (c *HubClient) QueryHubStatus(ctx context.Context, req *networkconnectivitypb.QueryHubStatusRequest, opts ...gax.CallOption) *HubStatusEntryIterator { + return c.internalClient.QueryHubStatus(ctx, req, opts...) +} + +// ListSpokes lists the Network Connectivity Center spokes in a specified project and +// location. +func (c *HubClient) ListSpokes(ctx context.Context, req *networkconnectivitypb.ListSpokesRequest, opts ...gax.CallOption) *SpokeIterator { + return c.internalClient.ListSpokes(ctx, req, opts...) +} + +// GetSpoke gets details about a Network Connectivity Center spoke. +func (c *HubClient) GetSpoke(ctx context.Context, req *networkconnectivitypb.GetSpokeRequest, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, error) { + return c.internalClient.GetSpoke(ctx, req, opts...) +} + +// CreateSpoke creates a Network Connectivity Center spoke. +func (c *HubClient) CreateSpoke(ctx context.Context, req *networkconnectivitypb.CreateSpokeRequest, opts ...gax.CallOption) (*CreateSpokeOperation, error) { + return c.internalClient.CreateSpoke(ctx, req, opts...) +} + +// CreateSpokeOperation returns a new CreateSpokeOperation from a given name. +// The name must be that of a previously created CreateSpokeOperation, possibly from a different process. +func (c *HubClient) CreateSpokeOperation(name string) *CreateSpokeOperation { + return c.internalClient.CreateSpokeOperation(name) +} + +// UpdateSpoke updates the parameters of a Network Connectivity Center spoke. +func (c *HubClient) UpdateSpoke(ctx context.Context, req *networkconnectivitypb.UpdateSpokeRequest, opts ...gax.CallOption) (*UpdateSpokeOperation, error) { + return c.internalClient.UpdateSpoke(ctx, req, opts...) +} + +// UpdateSpokeOperation returns a new UpdateSpokeOperation from a given name. +// The name must be that of a previously created UpdateSpokeOperation, possibly from a different process. +func (c *HubClient) UpdateSpokeOperation(name string) *UpdateSpokeOperation { + return c.internalClient.UpdateSpokeOperation(name) +} + +// RejectHubSpoke rejects a Network Connectivity Center spoke from being attached to a hub. +// If the spoke was previously in the ACTIVE state, it +// transitions to the INACTIVE state and is no longer able to +// connect to other spokes that are attached to the hub. +func (c *HubClient) RejectHubSpoke(ctx context.Context, req *networkconnectivitypb.RejectHubSpokeRequest, opts ...gax.CallOption) (*RejectHubSpokeOperation, error) { + return c.internalClient.RejectHubSpoke(ctx, req, opts...) +} + +// RejectHubSpokeOperation returns a new RejectHubSpokeOperation from a given name. +// The name must be that of a previously created RejectHubSpokeOperation, possibly from a different process. +func (c *HubClient) RejectHubSpokeOperation(name string) *RejectHubSpokeOperation { + return c.internalClient.RejectHubSpokeOperation(name) +} + +// AcceptHubSpoke accepts a proposal to attach a Network Connectivity Center spoke +// to a hub. +func (c *HubClient) AcceptHubSpoke(ctx context.Context, req *networkconnectivitypb.AcceptHubSpokeRequest, opts ...gax.CallOption) (*AcceptHubSpokeOperation, error) { + return c.internalClient.AcceptHubSpoke(ctx, req, opts...) +} + +// AcceptHubSpokeOperation returns a new AcceptHubSpokeOperation from a given name. +// The name must be that of a previously created AcceptHubSpokeOperation, possibly from a different process. +func (c *HubClient) AcceptHubSpokeOperation(name string) *AcceptHubSpokeOperation { + return c.internalClient.AcceptHubSpokeOperation(name) +} + +// AcceptSpokeUpdate accepts a proposal to update a Network Connectivity Center spoke in a hub. +func (c *HubClient) AcceptSpokeUpdate(ctx context.Context, req *networkconnectivitypb.AcceptSpokeUpdateRequest, opts ...gax.CallOption) (*AcceptSpokeUpdateOperation, error) { + return c.internalClient.AcceptSpokeUpdate(ctx, req, opts...) +} + +// AcceptSpokeUpdateOperation returns a new AcceptSpokeUpdateOperation from a given name. +// The name must be that of a previously created AcceptSpokeUpdateOperation, possibly from a different process. +func (c *HubClient) AcceptSpokeUpdateOperation(name string) *AcceptSpokeUpdateOperation { + return c.internalClient.AcceptSpokeUpdateOperation(name) +} + +// RejectSpokeUpdate rejects a proposal to update a Network Connectivity Center spoke in a hub. +func (c *HubClient) RejectSpokeUpdate(ctx context.Context, req *networkconnectivitypb.RejectSpokeUpdateRequest, opts ...gax.CallOption) (*RejectSpokeUpdateOperation, error) { + return c.internalClient.RejectSpokeUpdate(ctx, req, opts...) +} + +// RejectSpokeUpdateOperation returns a new RejectSpokeUpdateOperation from a given name. +// The name must be that of a previously created RejectSpokeUpdateOperation, possibly from a different process. +func (c *HubClient) RejectSpokeUpdateOperation(name string) *RejectSpokeUpdateOperation { + return c.internalClient.RejectSpokeUpdateOperation(name) +} + +// DeleteSpoke deletes a Network Connectivity Center spoke. +func (c *HubClient) DeleteSpoke(ctx context.Context, req *networkconnectivitypb.DeleteSpokeRequest, opts ...gax.CallOption) (*DeleteSpokeOperation, error) { + return c.internalClient.DeleteSpoke(ctx, req, opts...) +} + +// DeleteSpokeOperation returns a new DeleteSpokeOperation from a given name. +// The name must be that of a previously created DeleteSpokeOperation, possibly from a different process. +func (c *HubClient) DeleteSpokeOperation(name string) *DeleteSpokeOperation { + return c.internalClient.DeleteSpokeOperation(name) +} + +// GetRouteTable gets details about a Network Connectivity Center route table. +func (c *HubClient) GetRouteTable(ctx context.Context, req *networkconnectivitypb.GetRouteTableRequest, opts ...gax.CallOption) (*networkconnectivitypb.RouteTable, error) { + return c.internalClient.GetRouteTable(ctx, req, opts...) +} + +// GetRoute gets details about the specified route. +func (c *HubClient) GetRoute(ctx context.Context, req *networkconnectivitypb.GetRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.Route, error) { + return c.internalClient.GetRoute(ctx, req, opts...) +} + +// ListRoutes lists routes in a given route table. +func (c *HubClient) ListRoutes(ctx context.Context, req *networkconnectivitypb.ListRoutesRequest, opts ...gax.CallOption) *RouteIterator { + return c.internalClient.ListRoutes(ctx, req, opts...) +} + +// ListRouteTables lists route tables in a given hub. +func (c *HubClient) ListRouteTables(ctx context.Context, req *networkconnectivitypb.ListRouteTablesRequest, opts ...gax.CallOption) *RouteTableIterator { + return c.internalClient.ListRouteTables(ctx, req, opts...) +} + +// GetGroup gets details about a Network Connectivity Center group. +func (c *HubClient) GetGroup(ctx context.Context, req *networkconnectivitypb.GetGroupRequest, opts ...gax.CallOption) (*networkconnectivitypb.Group, error) { + return c.internalClient.GetGroup(ctx, req, opts...) +} + +// ListGroups lists groups in a given hub. +func (c *HubClient) ListGroups(ctx context.Context, req *networkconnectivitypb.ListGroupsRequest, opts ...gax.CallOption) *GroupIterator { + return c.internalClient.ListGroups(ctx, req, opts...) +} + +// UpdateGroup updates the parameters of a Network Connectivity Center group. +func (c *HubClient) UpdateGroup(ctx context.Context, req *networkconnectivitypb.UpdateGroupRequest, opts ...gax.CallOption) (*UpdateGroupOperation, error) { + return c.internalClient.UpdateGroup(ctx, req, opts...) +} + +// UpdateGroupOperation returns a new UpdateGroupOperation from a given name. +// The name must be that of a previously created UpdateGroupOperation, possibly from a different process. +func (c *HubClient) UpdateGroupOperation(name string) *UpdateGroupOperation { + return c.internalClient.UpdateGroupOperation(name) +} + +// CreateGatewayAdvertisedRoute create a GatewayAdvertisedRoute +func (c *HubClient) CreateGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.CreateGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*CreateGatewayAdvertisedRouteOperation, error) { + return c.internalClient.CreateGatewayAdvertisedRoute(ctx, req, opts...) +} + +// CreateGatewayAdvertisedRouteOperation returns a new CreateGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created CreateGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *HubClient) CreateGatewayAdvertisedRouteOperation(name string) *CreateGatewayAdvertisedRouteOperation { + return c.internalClient.CreateGatewayAdvertisedRouteOperation(name) +} + +// GetGatewayAdvertisedRoute get a GatewayAdvertisedRoute +func (c *HubClient) GetGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.GetGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, error) { + return c.internalClient.GetGatewayAdvertisedRoute(ctx, req, opts...) +} + +// ListGatewayAdvertisedRoutes list GatewayAdvertisedRoutes +func (c *HubClient) ListGatewayAdvertisedRoutes(ctx context.Context, req *networkconnectivitypb.ListGatewayAdvertisedRoutesRequest, opts ...gax.CallOption) *GatewayAdvertisedRouteIterator { + return c.internalClient.ListGatewayAdvertisedRoutes(ctx, req, opts...) +} + +// UpdateGatewayAdvertisedRoute update a GatewayAdvertisedRoute +func (c *HubClient) UpdateGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*UpdateGatewayAdvertisedRouteOperation, error) { + return c.internalClient.UpdateGatewayAdvertisedRoute(ctx, req, opts...) +} + +// UpdateGatewayAdvertisedRouteOperation returns a new UpdateGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created UpdateGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *HubClient) UpdateGatewayAdvertisedRouteOperation(name string) *UpdateGatewayAdvertisedRouteOperation { + return c.internalClient.UpdateGatewayAdvertisedRouteOperation(name) +} + +// DeleteGatewayAdvertisedRoute delete a GatewayAdvertisedRoute +func (c *HubClient) DeleteGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*DeleteGatewayAdvertisedRouteOperation, error) { + return c.internalClient.DeleteGatewayAdvertisedRoute(ctx, req, opts...) +} + +// DeleteGatewayAdvertisedRouteOperation returns a new DeleteGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created DeleteGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *HubClient) DeleteGatewayAdvertisedRouteOperation(name string) *DeleteGatewayAdvertisedRouteOperation { + return c.internalClient.DeleteGatewayAdvertisedRouteOperation(name) +} + +// GetLocation gets information about a location. +func (c *HubClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *HubClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *HubClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *HubClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *HubClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *HubClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *HubClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *HubClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *HubClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// hubGRPCClient is a client for interacting with Network Connectivity API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type hubGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing HubClient + CallOptions **HubCallOptions + + // The gRPC API client. + hubClient networkconnectivitypb.HubServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewHubClient creates a new hub service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Network Connectivity Center is a hub-and-spoke abstraction for network +// connectivity management in Google Cloud. It reduces operational complexity +// through a simple, centralized connectivity management model. +func NewHubClient(ctx context.Context, opts ...option.ClientOption) (*HubClient, error) { + clientOpts := defaultHubGRPCClientOptions() + if newHubClientHook != nil { + hookOpts, err := newHubClientHook(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 := HubClient{CallOptions: defaultHubCallOptions()} + + c := &hubGRPCClient{ + connPool: connPool, + hubClient: networkconnectivitypb.NewHubServiceClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *hubGRPCClient) 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 *hubGRPCClient) 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 *hubGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *hubGRPCClient) ListHubs(ctx context.Context, req *networkconnectivitypb.ListHubsRequest, opts ...gax.CallOption) *HubIterator { + 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).ListHubs[0:len((*c.CallOptions).ListHubs):len((*c.CallOptions).ListHubs)], opts...) + it := &HubIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListHubsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Hub, string, error) { + resp := &networkconnectivitypb.ListHubsResponse{} + 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.hubClient.ListHubs, req, settings.GRPC, c.logger, "ListHubs") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetHubs(), 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 *hubGRPCClient) GetHub(ctx context.Context, req *networkconnectivitypb.GetHubRequest, opts ...gax.CallOption) (*networkconnectivitypb.Hub, 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).GetHub[0:len((*c.CallOptions).GetHub):len((*c.CallOptions).GetHub)], opts...) + var resp *networkconnectivitypb.Hub + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetHub, req, settings.GRPC, c.logger, "GetHub") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) CreateHub(ctx context.Context, req *networkconnectivitypb.CreateHubRequest, opts ...gax.CallOption) (*CreateHubOperation, 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).CreateHub[0:len((*c.CallOptions).CreateHub):len((*c.CallOptions).CreateHub)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.CreateHub, req, settings.GRPC, c.logger, "CreateHub") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) UpdateHub(ctx context.Context, req *networkconnectivitypb.UpdateHubRequest, opts ...gax.CallOption) (*UpdateHubOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "hub.name", url.QueryEscape(req.GetHub().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateHub[0:len((*c.CallOptions).UpdateHub):len((*c.CallOptions).UpdateHub)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.UpdateHub, req, settings.GRPC, c.logger, "UpdateHub") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) DeleteHub(ctx context.Context, req *networkconnectivitypb.DeleteHubRequest, opts ...gax.CallOption) (*DeleteHubOperation, 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).DeleteHub[0:len((*c.CallOptions).DeleteHub):len((*c.CallOptions).DeleteHub)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.DeleteHub, req, settings.GRPC, c.logger, "DeleteHub") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) ListHubSpokes(ctx context.Context, req *networkconnectivitypb.ListHubSpokesRequest, opts ...gax.CallOption) *SpokeIterator { + 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).ListHubSpokes[0:len((*c.CallOptions).ListHubSpokes):len((*c.CallOptions).ListHubSpokes)], opts...) + it := &SpokeIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListHubSpokesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Spoke, string, error) { + resp := &networkconnectivitypb.ListHubSpokesResponse{} + 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.hubClient.ListHubSpokes, req, settings.GRPC, c.logger, "ListHubSpokes") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSpokes(), 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 *hubGRPCClient) QueryHubStatus(ctx context.Context, req *networkconnectivitypb.QueryHubStatusRequest, opts ...gax.CallOption) *HubStatusEntryIterator { + 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).QueryHubStatus[0:len((*c.CallOptions).QueryHubStatus):len((*c.CallOptions).QueryHubStatus)], opts...) + it := &HubStatusEntryIterator{} + req = proto.Clone(req).(*networkconnectivitypb.QueryHubStatusRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.HubStatusEntry, string, error) { + resp := &networkconnectivitypb.QueryHubStatusResponse{} + 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.hubClient.QueryHubStatus, req, settings.GRPC, c.logger, "QueryHubStatus") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetHubStatusEntries(), 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 *hubGRPCClient) ListSpokes(ctx context.Context, req *networkconnectivitypb.ListSpokesRequest, opts ...gax.CallOption) *SpokeIterator { + 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).ListSpokes[0:len((*c.CallOptions).ListSpokes):len((*c.CallOptions).ListSpokes)], opts...) + it := &SpokeIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListSpokesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Spoke, string, error) { + resp := &networkconnectivitypb.ListSpokesResponse{} + 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.hubClient.ListSpokes, req, settings.GRPC, c.logger, "ListSpokes") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSpokes(), 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 *hubGRPCClient) GetSpoke(ctx context.Context, req *networkconnectivitypb.GetSpokeRequest, opts ...gax.CallOption) (*networkconnectivitypb.Spoke, 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).GetSpoke[0:len((*c.CallOptions).GetSpoke):len((*c.CallOptions).GetSpoke)], opts...) + var resp *networkconnectivitypb.Spoke + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetSpoke, req, settings.GRPC, c.logger, "GetSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) CreateSpoke(ctx context.Context, req *networkconnectivitypb.CreateSpokeRequest, opts ...gax.CallOption) (*CreateSpokeOperation, 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).CreateSpoke[0:len((*c.CallOptions).CreateSpoke):len((*c.CallOptions).CreateSpoke)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.CreateSpoke, req, settings.GRPC, c.logger, "CreateSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) UpdateSpoke(ctx context.Context, req *networkconnectivitypb.UpdateSpokeRequest, opts ...gax.CallOption) (*UpdateSpokeOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "spoke.name", url.QueryEscape(req.GetSpoke().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSpoke[0:len((*c.CallOptions).UpdateSpoke):len((*c.CallOptions).UpdateSpoke)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.UpdateSpoke, req, settings.GRPC, c.logger, "UpdateSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) RejectHubSpoke(ctx context.Context, req *networkconnectivitypb.RejectHubSpokeRequest, opts ...gax.CallOption) (*RejectHubSpokeOperation, 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).RejectHubSpoke[0:len((*c.CallOptions).RejectHubSpoke):len((*c.CallOptions).RejectHubSpoke)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.RejectHubSpoke, req, settings.GRPC, c.logger, "RejectHubSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return &RejectHubSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) AcceptHubSpoke(ctx context.Context, req *networkconnectivitypb.AcceptHubSpokeRequest, opts ...gax.CallOption) (*AcceptHubSpokeOperation, 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).AcceptHubSpoke[0:len((*c.CallOptions).AcceptHubSpoke):len((*c.CallOptions).AcceptHubSpoke)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.AcceptHubSpoke, req, settings.GRPC, c.logger, "AcceptHubSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return &AcceptHubSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) AcceptSpokeUpdate(ctx context.Context, req *networkconnectivitypb.AcceptSpokeUpdateRequest, opts ...gax.CallOption) (*AcceptSpokeUpdateOperation, 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).AcceptSpokeUpdate[0:len((*c.CallOptions).AcceptSpokeUpdate):len((*c.CallOptions).AcceptSpokeUpdate)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.AcceptSpokeUpdate, req, settings.GRPC, c.logger, "AcceptSpokeUpdate") + return err + }, opts...) + if err != nil { + return nil, err + } + return &AcceptSpokeUpdateOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) RejectSpokeUpdate(ctx context.Context, req *networkconnectivitypb.RejectSpokeUpdateRequest, opts ...gax.CallOption) (*RejectSpokeUpdateOperation, 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).RejectSpokeUpdate[0:len((*c.CallOptions).RejectSpokeUpdate):len((*c.CallOptions).RejectSpokeUpdate)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.RejectSpokeUpdate, req, settings.GRPC, c.logger, "RejectSpokeUpdate") + return err + }, opts...) + if err != nil { + return nil, err + } + return &RejectSpokeUpdateOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) DeleteSpoke(ctx context.Context, req *networkconnectivitypb.DeleteSpokeRequest, opts ...gax.CallOption) (*DeleteSpokeOperation, 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).DeleteSpoke[0:len((*c.CallOptions).DeleteSpoke):len((*c.CallOptions).DeleteSpoke)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.DeleteSpoke, req, settings.GRPC, c.logger, "DeleteSpoke") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) GetRouteTable(ctx context.Context, req *networkconnectivitypb.GetRouteTableRequest, opts ...gax.CallOption) (*networkconnectivitypb.RouteTable, 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).GetRouteTable[0:len((*c.CallOptions).GetRouteTable):len((*c.CallOptions).GetRouteTable)], opts...) + var resp *networkconnectivitypb.RouteTable + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetRouteTable, req, settings.GRPC, c.logger, "GetRouteTable") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) GetRoute(ctx context.Context, req *networkconnectivitypb.GetRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.Route, 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).GetRoute[0:len((*c.CallOptions).GetRoute):len((*c.CallOptions).GetRoute)], opts...) + var resp *networkconnectivitypb.Route + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetRoute, req, settings.GRPC, c.logger, "GetRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) ListRoutes(ctx context.Context, req *networkconnectivitypb.ListRoutesRequest, opts ...gax.CallOption) *RouteIterator { + 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).ListRoutes[0:len((*c.CallOptions).ListRoutes):len((*c.CallOptions).ListRoutes)], opts...) + it := &RouteIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListRoutesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Route, string, error) { + resp := &networkconnectivitypb.ListRoutesResponse{} + 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.hubClient.ListRoutes, req, settings.GRPC, c.logger, "ListRoutes") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetRoutes(), 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 *hubGRPCClient) ListRouteTables(ctx context.Context, req *networkconnectivitypb.ListRouteTablesRequest, opts ...gax.CallOption) *RouteTableIterator { + 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).ListRouteTables[0:len((*c.CallOptions).ListRouteTables):len((*c.CallOptions).ListRouteTables)], opts...) + it := &RouteTableIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListRouteTablesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.RouteTable, string, error) { + resp := &networkconnectivitypb.ListRouteTablesResponse{} + 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.hubClient.ListRouteTables, req, settings.GRPC, c.logger, "ListRouteTables") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetRouteTables(), 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 *hubGRPCClient) GetGroup(ctx context.Context, req *networkconnectivitypb.GetGroupRequest, opts ...gax.CallOption) (*networkconnectivitypb.Group, 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).GetGroup[0:len((*c.CallOptions).GetGroup):len((*c.CallOptions).GetGroup)], opts...) + var resp *networkconnectivitypb.Group + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetGroup, req, settings.GRPC, c.logger, "GetGroup") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) ListGroups(ctx context.Context, req *networkconnectivitypb.ListGroupsRequest, opts ...gax.CallOption) *GroupIterator { + 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).ListGroups[0:len((*c.CallOptions).ListGroups):len((*c.CallOptions).ListGroups)], opts...) + it := &GroupIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListGroupsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Group, string, error) { + resp := &networkconnectivitypb.ListGroupsResponse{} + 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.hubClient.ListGroups, req, settings.GRPC, c.logger, "ListGroups") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetGroups(), 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 *hubGRPCClient) UpdateGroup(ctx context.Context, req *networkconnectivitypb.UpdateGroupRequest, opts ...gax.CallOption) (*UpdateGroupOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "group.name", url.QueryEscape(req.GetGroup().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateGroup[0:len((*c.CallOptions).UpdateGroup):len((*c.CallOptions).UpdateGroup)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.UpdateGroup, req, settings.GRPC, c.logger, "UpdateGroup") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) CreateGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.CreateGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*CreateGatewayAdvertisedRouteOperation, 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).CreateGatewayAdvertisedRoute[0:len((*c.CallOptions).CreateGatewayAdvertisedRoute):len((*c.CallOptions).CreateGatewayAdvertisedRoute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.CreateGatewayAdvertisedRoute, req, settings.GRPC, c.logger, "CreateGatewayAdvertisedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) GetGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.GetGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.GatewayAdvertisedRoute, 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).GetGatewayAdvertisedRoute[0:len((*c.CallOptions).GetGatewayAdvertisedRoute):len((*c.CallOptions).GetGatewayAdvertisedRoute)], opts...) + var resp *networkconnectivitypb.GatewayAdvertisedRoute + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.GetGatewayAdvertisedRoute, req, settings.GRPC, c.logger, "GetGatewayAdvertisedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) ListGatewayAdvertisedRoutes(ctx context.Context, req *networkconnectivitypb.ListGatewayAdvertisedRoutesRequest, opts ...gax.CallOption) *GatewayAdvertisedRouteIterator { + 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).ListGatewayAdvertisedRoutes[0:len((*c.CallOptions).ListGatewayAdvertisedRoutes):len((*c.CallOptions).ListGatewayAdvertisedRoutes)], opts...) + it := &GatewayAdvertisedRouteIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListGatewayAdvertisedRoutesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.GatewayAdvertisedRoute, string, error) { + resp := &networkconnectivitypb.ListGatewayAdvertisedRoutesResponse{} + 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.hubClient.ListGatewayAdvertisedRoutes, req, settings.GRPC, c.logger, "ListGatewayAdvertisedRoutes") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetGatewayAdvertisedRoutes(), 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 *hubGRPCClient) UpdateGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*UpdateGatewayAdvertisedRouteOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "gateway_advertised_route.name", url.QueryEscape(req.GetGatewayAdvertisedRoute().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateGatewayAdvertisedRoute[0:len((*c.CallOptions).UpdateGatewayAdvertisedRoute):len((*c.CallOptions).UpdateGatewayAdvertisedRoute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.UpdateGatewayAdvertisedRoute, req, settings.GRPC, c.logger, "UpdateGatewayAdvertisedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) DeleteGatewayAdvertisedRoute(ctx context.Context, req *networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest, opts ...gax.CallOption) (*DeleteGatewayAdvertisedRouteOperation, 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).DeleteGatewayAdvertisedRoute[0:len((*c.CallOptions).DeleteGatewayAdvertisedRoute):len((*c.CallOptions).DeleteGatewayAdvertisedRoute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.hubClient.DeleteGatewayAdvertisedRoute, req, settings.GRPC, c.logger, "DeleteGatewayAdvertisedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *hubGRPCClient) 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 *hubGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *hubGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.GetIamPolicy, req, settings.GRPC, c.logger, "GetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.SetIamPolicy, req, settings.GRPC, c.logger, "SetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.TestIamPermissions, req, settings.GRPC, c.logger, "TestIamPermissions") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *hubGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *hubGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *hubGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// AcceptHubSpokeOperation returns a new AcceptHubSpokeOperation from a given name. +// The name must be that of a previously created AcceptHubSpokeOperation, possibly from a different process. +func (c *hubGRPCClient) AcceptHubSpokeOperation(name string) *AcceptHubSpokeOperation { + return &AcceptHubSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// AcceptSpokeUpdateOperation returns a new AcceptSpokeUpdateOperation from a given name. +// The name must be that of a previously created AcceptSpokeUpdateOperation, possibly from a different process. +func (c *hubGRPCClient) AcceptSpokeUpdateOperation(name string) *AcceptSpokeUpdateOperation { + return &AcceptSpokeUpdateOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateGatewayAdvertisedRouteOperation returns a new CreateGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created CreateGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *hubGRPCClient) CreateGatewayAdvertisedRouteOperation(name string) *CreateGatewayAdvertisedRouteOperation { + return &CreateGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateHubOperation returns a new CreateHubOperation from a given name. +// The name must be that of a previously created CreateHubOperation, possibly from a different process. +func (c *hubGRPCClient) CreateHubOperation(name string) *CreateHubOperation { + return &CreateHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateSpokeOperation returns a new CreateSpokeOperation from a given name. +// The name must be that of a previously created CreateSpokeOperation, possibly from a different process. +func (c *hubGRPCClient) CreateSpokeOperation(name string) *CreateSpokeOperation { + return &CreateSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteGatewayAdvertisedRouteOperation returns a new DeleteGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created DeleteGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *hubGRPCClient) DeleteGatewayAdvertisedRouteOperation(name string) *DeleteGatewayAdvertisedRouteOperation { + return &DeleteGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteHubOperation returns a new DeleteHubOperation from a given name. +// The name must be that of a previously created DeleteHubOperation, possibly from a different process. +func (c *hubGRPCClient) DeleteHubOperation(name string) *DeleteHubOperation { + return &DeleteHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteSpokeOperation returns a new DeleteSpokeOperation from a given name. +// The name must be that of a previously created DeleteSpokeOperation, possibly from a different process. +func (c *hubGRPCClient) DeleteSpokeOperation(name string) *DeleteSpokeOperation { + return &DeleteSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RejectHubSpokeOperation returns a new RejectHubSpokeOperation from a given name. +// The name must be that of a previously created RejectHubSpokeOperation, possibly from a different process. +func (c *hubGRPCClient) RejectHubSpokeOperation(name string) *RejectHubSpokeOperation { + return &RejectHubSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RejectSpokeUpdateOperation returns a new RejectSpokeUpdateOperation from a given name. +// The name must be that of a previously created RejectSpokeUpdateOperation, possibly from a different process. +func (c *hubGRPCClient) RejectSpokeUpdateOperation(name string) *RejectSpokeUpdateOperation { + return &RejectSpokeUpdateOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateGatewayAdvertisedRouteOperation returns a new UpdateGatewayAdvertisedRouteOperation from a given name. +// The name must be that of a previously created UpdateGatewayAdvertisedRouteOperation, possibly from a different process. +func (c *hubGRPCClient) UpdateGatewayAdvertisedRouteOperation(name string) *UpdateGatewayAdvertisedRouteOperation { + return &UpdateGatewayAdvertisedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateGroupOperation returns a new UpdateGroupOperation from a given name. +// The name must be that of a previously created UpdateGroupOperation, possibly from a different process. +func (c *hubGRPCClient) UpdateGroupOperation(name string) *UpdateGroupOperation { + return &UpdateGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateHubOperation returns a new UpdateHubOperation from a given name. +// The name must be that of a previously created UpdateHubOperation, possibly from a different process. +func (c *hubGRPCClient) UpdateHubOperation(name string) *UpdateHubOperation { + return &UpdateHubOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateSpokeOperation returns a new UpdateSpokeOperation from a given name. +// The name must be that of a previously created UpdateSpokeOperation, possibly from a different process. +func (c *hubGRPCClient) UpdateSpokeOperation(name string) *UpdateSpokeOperation { + return &UpdateSpokeOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/networkconnectivity/apiv1beta/hub_client_example_go123_test.go b/networkconnectivity/apiv1beta/hub_client_example_go123_test.go new file mode 100644 index 000000000000..d4ddc41691e1 --- /dev/null +++ b/networkconnectivity/apiv1beta/hub_client_example_go123_test.go @@ -0,0 +1,288 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +//go:build go1.23 + +package networkconnectivity_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleHubClient_ListGatewayAdvertisedRoutes_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGatewayAdvertisedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGatewayAdvertisedRoutesRequest. + } + for resp, err := range c.ListGatewayAdvertisedRoutes(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListGroups_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGroupsRequest. + } + for resp, err := range c.ListGroups(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListHubSpokes_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubSpokesRequest. + } + for resp, err := range c.ListHubSpokes(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListHubs_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubsRequest. + } + for resp, err := range c.ListHubs(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListRouteTables_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRouteTablesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRouteTablesRequest. + } + for resp, err := range c.ListRouteTables(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListRoutes_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRoutesRequest. + } + for resp, err := range c.ListRoutes(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListSpokes_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListSpokesRequest. + } + for resp, err := range c.ListSpokes(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_QueryHubStatus_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.QueryHubStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#QueryHubStatusRequest. + } + for resp, err := range c.QueryHubStatus(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleHubClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/networkconnectivity/apiv1beta/hub_client_example_test.go b/networkconnectivity/apiv1beta/hub_client_example_test.go new file mode 100644 index 000000000000..d436b418a66d --- /dev/null +++ b/networkconnectivity/apiv1beta/hub_client_example_test.go @@ -0,0 +1,1150 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity_test + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewHubClient() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleHubClient_AcceptHubSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.AcceptHubSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#AcceptHubSpokeRequest. + } + op, err := c.AcceptHubSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_AcceptSpokeUpdate() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.AcceptSpokeUpdateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#AcceptSpokeUpdateRequest. + } + op, err := c.AcceptSpokeUpdate(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_CreateGatewayAdvertisedRoute() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateGatewayAdvertisedRouteRequest. + } + op, err := c.CreateGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_CreateHub() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateHubRequest. + } + op, err := c.CreateHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_CreateSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateSpokeRequest. + } + op, err := c.CreateSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_DeleteGatewayAdvertisedRoute() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteGatewayAdvertisedRouteRequest. + } + op, err := c.DeleteGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleHubClient_DeleteHub() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteHubRequest. + } + op, err := c.DeleteHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleHubClient_DeleteSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteSpokeRequest. + } + op, err := c.DeleteSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleHubClient_GetGatewayAdvertisedRoute() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetGatewayAdvertisedRouteRequest. + } + resp, err := c.GetGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_GetGroup() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetGroupRequest. + } + resp, err := c.GetGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_GetHub() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetHubRequest. + } + resp, err := c.GetHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_GetRoute() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRouteRequest. + } + resp, err := c.GetRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_GetRouteTable() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRouteTableRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRouteTableRequest. + } + resp, err := c.GetRouteTable(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_GetSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetSpokeRequest. + } + resp, err := c.GetSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_ListGatewayAdvertisedRoutes() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGatewayAdvertisedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGatewayAdvertisedRoutesRequest. + } + it := c.ListGatewayAdvertisedRoutes(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.(*networkconnectivitypb.ListGatewayAdvertisedRoutesResponse) + } +} + +func ExampleHubClient_ListGroups() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListGroupsRequest. + } + it := c.ListGroups(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.(*networkconnectivitypb.ListGroupsResponse) + } +} + +func ExampleHubClient_ListHubSpokes() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubSpokesRequest. + } + it := c.ListHubSpokes(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.(*networkconnectivitypb.ListHubSpokesResponse) + } +} + +func ExampleHubClient_ListHubs() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListHubsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListHubsRequest. + } + it := c.ListHubs(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.(*networkconnectivitypb.ListHubsResponse) + } +} + +func ExampleHubClient_ListRouteTables() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRouteTablesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRouteTablesRequest. + } + it := c.ListRouteTables(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.(*networkconnectivitypb.ListRouteTablesResponse) + } +} + +func ExampleHubClient_ListRoutes() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRoutesRequest. + } + it := c.ListRoutes(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.(*networkconnectivitypb.ListRoutesResponse) + } +} + +func ExampleHubClient_ListSpokes() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListSpokesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListSpokesRequest. + } + it := c.ListSpokes(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.(*networkconnectivitypb.ListSpokesResponse) + } +} + +func ExampleHubClient_QueryHubStatus() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.QueryHubStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#QueryHubStatusRequest. + } + it := c.QueryHubStatus(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.(*networkconnectivitypb.QueryHubStatusResponse) + } +} + +func ExampleHubClient_RejectHubSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.RejectHubSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#RejectHubSpokeRequest. + } + op, err := c.RejectHubSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_RejectSpokeUpdate() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.RejectSpokeUpdateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#RejectSpokeUpdateRequest. + } + op, err := c.RejectSpokeUpdate(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_UpdateGatewayAdvertisedRoute() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateGatewayAdvertisedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateGatewayAdvertisedRouteRequest. + } + op, err := c.UpdateGatewayAdvertisedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_UpdateGroup() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateGroupRequest. + } + op, err := c.UpdateGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_UpdateHub() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateHubRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateHubRequest. + } + op, err := c.UpdateHub(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_UpdateSpoke() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateSpokeRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateSpokeRequest. + } + op, err := c.UpdateSpoke(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_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 := networkconnectivity.NewHubClient(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 ExampleHubClient_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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExampleHubClient_GetIamPolicy() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_SetIamPolicy() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_TestIamPermissions() { + 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 := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleHubClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleHubClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHubClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewHubClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/common.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/common.pb.go new file mode 100644 index 000000000000..21ab4835a7e4 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/common.pb.go @@ -0,0 +1,280 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/common.proto + +package networkconnectivitypb + +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) +) + +// Represents the metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have been cancelled successfully + // have + // [google.longrunning.Operation.error][google.longrunning.Operation.error] + // value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + mi := &file_google_cloud_networkconnectivity_v1beta_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_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 OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescGZIP(), []int{0} +} + +func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +var File_google_cloud_networkconnectivity_v1beta_common_proto protoreflect.FileDescriptor + +var file_google_cloud_networkconnectivity_v1beta_common_proto_rawDesc = []byte{ + 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 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, 0xd5, 0x02, 0x0a, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, + 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, + 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x42, 0xcc, 0x05, 0xea, 0x41, 0x7a, 0x0a, 0x2d, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, + 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x7d, 0xea, 0x41, 0x52, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x30, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0xea, 0x41, 0x61, 0x0a, 0x21, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, + 0x2f, 0x7b, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0xea, 0x41, 0x77, + 0x0a, 0x28, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x70, 0x62, 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x27, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescOnce sync.Once + file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescData = file_google_cloud_networkconnectivity_v1beta_common_proto_rawDesc +) + +func file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescGZIP() []byte { + file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescOnce.Do(func() { + file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescData) + }) + return file_google_cloud_networkconnectivity_v1beta_common_proto_rawDescData +} + +var file_google_cloud_networkconnectivity_v1beta_common_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_networkconnectivity_v1beta_common_proto_goTypes = []any{ + (*OperationMetadata)(nil), // 0: google.cloud.networkconnectivity.v1beta.OperationMetadata + (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp +} +var file_google_cloud_networkconnectivity_v1beta_common_proto_depIdxs = []int32{ + 1, // 0: google.cloud.networkconnectivity.v1beta.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 1, // 1: google.cloud.networkconnectivity.v1beta.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 2, // [2:2] is the sub-list for method output_type + 2, // [2:2] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_networkconnectivity_v1beta_common_proto_init() } +func file_google_cloud_networkconnectivity_v1beta_common_proto_init() { + if File_google_cloud_networkconnectivity_v1beta_common_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_networkconnectivity_v1beta_common_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_networkconnectivity_v1beta_common_proto_goTypes, + DependencyIndexes: file_google_cloud_networkconnectivity_v1beta_common_proto_depIdxs, + MessageInfos: file_google_cloud_networkconnectivity_v1beta_common_proto_msgTypes, + }.Build() + File_google_cloud_networkconnectivity_v1beta_common_proto = out.File + file_google_cloud_networkconnectivity_v1beta_common_proto_rawDesc = nil + file_google_cloud_networkconnectivity_v1beta_common_proto_goTypes = nil + file_google_cloud_networkconnectivity_v1beta_common_proto_depIdxs = nil +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer.pb.go new file mode 100644 index 000000000000..842838cb6d9c --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer.pb.go @@ -0,0 +1,2778 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/data_transfer.proto + +package networkconnectivitypb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The state of the `DestinationEndpoint` resource. +type Destination_DestinationEndpoint_State int32 + +const ( + // An invalid state, which is the default case. + Destination_DestinationEndpoint_STATE_UNSPECIFIED Destination_DestinationEndpoint_State = 0 + // The `DestinationEndpoint` resource is valid. + Destination_DestinationEndpoint_VALID Destination_DestinationEndpoint_State = 1 + // The `DestinationEndpoint` resource is invalid. + Destination_DestinationEndpoint_INVALID Destination_DestinationEndpoint_State = 2 +) + +// Enum value maps for Destination_DestinationEndpoint_State. +var ( + Destination_DestinationEndpoint_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "VALID", + 2: "INVALID", + } + Destination_DestinationEndpoint_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "VALID": 1, + "INVALID": 2, + } +) + +func (x Destination_DestinationEndpoint_State) Enum() *Destination_DestinationEndpoint_State { + p := new(Destination_DestinationEndpoint_State) + *p = x + return p +} + +func (x Destination_DestinationEndpoint_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Destination_DestinationEndpoint_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[0].Descriptor() +} + +func (Destination_DestinationEndpoint_State) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[0] +} + +func (x Destination_DestinationEndpoint_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Destination_DestinationEndpoint_State.Descriptor instead. +func (Destination_DestinationEndpoint_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{7, 0, 0} +} + +// The state of the resource. +type StateTimeline_StateMetadata_State int32 + +const ( + // An invalid state, which is the default case. + StateTimeline_StateMetadata_STATE_UNSPECIFIED StateTimeline_StateMetadata_State = 0 + // The resource is being added. + StateTimeline_StateMetadata_ADDING StateTimeline_StateMetadata_State = 1 + // The resource is in use. + StateTimeline_StateMetadata_ACTIVE StateTimeline_StateMetadata_State = 2 + // The resource is being deleted. + StateTimeline_StateMetadata_DELETING StateTimeline_StateMetadata_State = 3 + // The resource is being suspended. + StateTimeline_StateMetadata_SUSPENDING StateTimeline_StateMetadata_State = 4 + // The resource is suspended and not in use. + StateTimeline_StateMetadata_SUSPENDED StateTimeline_StateMetadata_State = 5 +) + +// Enum value maps for StateTimeline_StateMetadata_State. +var ( + StateTimeline_StateMetadata_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "ADDING", + 2: "ACTIVE", + 3: "DELETING", + 4: "SUSPENDING", + 5: "SUSPENDED", + } + StateTimeline_StateMetadata_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "ADDING": 1, + "ACTIVE": 2, + "DELETING": 3, + "SUSPENDING": 4, + "SUSPENDED": 5, + } +) + +func (x StateTimeline_StateMetadata_State) Enum() *StateTimeline_StateMetadata_State { + p := new(StateTimeline_StateMetadata_State) + *p = x + return p +} + +func (x StateTimeline_StateMetadata_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StateTimeline_StateMetadata_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[1].Descriptor() +} + +func (StateTimeline_StateMetadata_State) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[1] +} + +func (x StateTimeline_StateMetadata_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StateTimeline_StateMetadata_State.Descriptor instead. +func (StateTimeline_StateMetadata_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{14, 0, 0} +} + +// The eligibility information for the service. +type ServiceConfig_EligibilityCriteria int32 + +const ( + // The service is not eligible for Data Transfer Essentials configuration. + // This is the default case. + ServiceConfig_ELIGIBILITY_CRITERIA_UNSPECIFIED ServiceConfig_EligibilityCriteria = 0 + // The service is eligible for Data Transfer Essentials configuration only + // for Premium Tier. + ServiceConfig_NETWORK_SERVICE_TIER_PREMIUM_ONLY ServiceConfig_EligibilityCriteria = 1 + // The service is eligible for Data Transfer Essentials configuration only + // for Standard Tier. + ServiceConfig_NETWORK_SERVICE_TIER_STANDARD_ONLY ServiceConfig_EligibilityCriteria = 2 + // The service is eligible for Data Transfer Essentials configuration only + // for the regional endpoint. + ServiceConfig_REQUEST_ENDPOINT_REGIONAL_ENDPOINT_ONLY ServiceConfig_EligibilityCriteria = 3 +) + +// Enum value maps for ServiceConfig_EligibilityCriteria. +var ( + ServiceConfig_EligibilityCriteria_name = map[int32]string{ + 0: "ELIGIBILITY_CRITERIA_UNSPECIFIED", + 1: "NETWORK_SERVICE_TIER_PREMIUM_ONLY", + 2: "NETWORK_SERVICE_TIER_STANDARD_ONLY", + 3: "REQUEST_ENDPOINT_REGIONAL_ENDPOINT_ONLY", + } + ServiceConfig_EligibilityCriteria_value = map[string]int32{ + "ELIGIBILITY_CRITERIA_UNSPECIFIED": 0, + "NETWORK_SERVICE_TIER_PREMIUM_ONLY": 1, + "NETWORK_SERVICE_TIER_STANDARD_ONLY": 2, + "REQUEST_ENDPOINT_REGIONAL_ENDPOINT_ONLY": 3, + } +) + +func (x ServiceConfig_EligibilityCriteria) Enum() *ServiceConfig_EligibilityCriteria { + p := new(ServiceConfig_EligibilityCriteria) + *p = x + return p +} + +func (x ServiceConfig_EligibilityCriteria) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ServiceConfig_EligibilityCriteria) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[2].Descriptor() +} + +func (ServiceConfig_EligibilityCriteria) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes[2] +} + +func (x ServiceConfig_EligibilityCriteria) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ServiceConfig_EligibilityCriteria.Descriptor instead. +func (ServiceConfig_EligibilityCriteria) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{16, 0} +} + +// The `MulticloudDataTransferConfig` resource. It lists the services that you +// configure for Data Transfer Essentials billing and metering. +type MulticloudDataTransferConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of the `MulticloudDataTransferConfig` resource. + // Format: + // `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Time when the `MulticloudDataTransferConfig` resource was + // created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Time when the `MulticloudDataTransferConfig` resource was + // updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. User-defined labels. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The etag is computed by the server, and might be sent with update and + // delete requests so that the client has an up-to-date value before + // proceeding. + Etag string `protobuf:"bytes,5,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. A description of this resource. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The number of `Destination` resources configured for the + // `MulticloudDataTransferConfig` resource. + DestinationsCount int32 `protobuf:"varint,7,opt,name=destinations_count,json=destinationsCount,proto3" json:"destinations_count,omitempty"` + // Output only. The number of `Destination` resources in use with the + // `MulticloudDataTransferConfig` resource. + DestinationsActiveCount int32 `protobuf:"varint,8,opt,name=destinations_active_count,json=destinationsActiveCount,proto3" json:"destinations_active_count,omitempty"` + // Optional. Maps services to their current or planned states. Service names + // are keys, and the associated values describe the state of the service. If a + // state change is expected, the value is either `ADDING` or `DELETING`, + // depending on the actions taken. + // + // Sample output: + // + // "services": { + // "big-query": { + // "states": [ + // { + // "effectiveTime": "2024-12-12T08:00:00Z" + // "state": "ADDING", + // }, + // ] + // }, + // "cloud-storage": { + // "states": [ + // { + // "state": "ACTIVE", + // } + // ] + // } + // } + Services map[string]*StateTimeline `protobuf:"bytes,9,rep,name=services,proto3" json:"services,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The Google-generated unique ID for the + // `MulticloudDataTransferConfig` resource. This value is unique across all + // `MulticloudDataTransferConfig` resources. If a resource is deleted and + // another with the same name is created, the new resource is assigned a + // different and unique ID. + Uid string `protobuf:"bytes,10,opt,name=uid,proto3" json:"uid,omitempty"` +} + +func (x *MulticloudDataTransferConfig) Reset() { + *x = MulticloudDataTransferConfig{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MulticloudDataTransferConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MulticloudDataTransferConfig) ProtoMessage() {} + +func (x *MulticloudDataTransferConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 MulticloudDataTransferConfig.ProtoReflect.Descriptor instead. +func (*MulticloudDataTransferConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{0} +} + +func (x *MulticloudDataTransferConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MulticloudDataTransferConfig) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *MulticloudDataTransferConfig) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *MulticloudDataTransferConfig) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *MulticloudDataTransferConfig) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *MulticloudDataTransferConfig) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *MulticloudDataTransferConfig) GetDestinationsCount() int32 { + if x != nil { + return x.DestinationsCount + } + return 0 +} + +func (x *MulticloudDataTransferConfig) GetDestinationsActiveCount() int32 { + if x != nil { + return x.DestinationsActiveCount + } + return 0 +} + +func (x *MulticloudDataTransferConfig) GetServices() map[string]*StateTimeline { + if x != nil { + return x.Services + } + return nil +} + +func (x *MulticloudDataTransferConfig) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +// Request message to list `MulticloudDataTransferConfig` resources. +type ListMulticloudDataTransferConfigsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of results listed per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. An expression that filters the results listed in the response. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. The sort order of the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Optional. If `true`, allows partial responses for multi-regional aggregated + // list requests. + ReturnPartialSuccess bool `protobuf:"varint,6,opt,name=return_partial_success,json=returnPartialSuccess,proto3" json:"return_partial_success,omitempty"` +} + +func (x *ListMulticloudDataTransferConfigsRequest) Reset() { + *x = ListMulticloudDataTransferConfigsRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMulticloudDataTransferConfigsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMulticloudDataTransferConfigsRequest) ProtoMessage() {} + +func (x *ListMulticloudDataTransferConfigsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListMulticloudDataTransferConfigsRequest.ProtoReflect.Descriptor instead. +func (*ListMulticloudDataTransferConfigsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{1} +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListMulticloudDataTransferConfigsRequest) GetReturnPartialSuccess() bool { + if x != nil { + return x.ReturnPartialSuccess + } + return false +} + +// Response message to list `MulticloudDataTransferConfig` resources. +type ListMulticloudDataTransferConfigsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of `MulticloudDataTransferConfig` resources to be listed. + MulticloudDataTransferConfigs []*MulticloudDataTransferConfig `protobuf:"bytes,1,rep,name=multicloud_data_transfer_configs,json=multicloudDataTransferConfigs,proto3" json:"multicloud_data_transfer_configs,omitempty"` + // The next page token. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListMulticloudDataTransferConfigsResponse) Reset() { + *x = ListMulticloudDataTransferConfigsResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMulticloudDataTransferConfigsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMulticloudDataTransferConfigsResponse) ProtoMessage() {} + +func (x *ListMulticloudDataTransferConfigsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListMulticloudDataTransferConfigsResponse.ProtoReflect.Descriptor instead. +func (*ListMulticloudDataTransferConfigsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{2} +} + +func (x *ListMulticloudDataTransferConfigsResponse) GetMulticloudDataTransferConfigs() []*MulticloudDataTransferConfig { + if x != nil { + return x.MulticloudDataTransferConfigs + } + return nil +} + +func (x *ListMulticloudDataTransferConfigsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListMulticloudDataTransferConfigsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request message to get the details of a `MulticloudDataTransferConfig` +// resource. +type GetMulticloudDataTransferConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the `MulticloudDataTransferConfig` resource to get. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetMulticloudDataTransferConfigRequest) Reset() { + *x = GetMulticloudDataTransferConfigRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMulticloudDataTransferConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMulticloudDataTransferConfigRequest) ProtoMessage() {} + +func (x *GetMulticloudDataTransferConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 GetMulticloudDataTransferConfigRequest.ProtoReflect.Descriptor instead. +func (*GetMulticloudDataTransferConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{3} +} + +func (x *GetMulticloudDataTransferConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message to create a `MulticloudDataTransferConfig` resource. +type CreateMulticloudDataTransferConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID to use for the `MulticloudDataTransferConfig` resource, + // which becomes the final component of the `MulticloudDataTransferConfig` + // resource name. + MulticloudDataTransferConfigId string `protobuf:"bytes,2,opt,name=multicloud_data_transfer_config_id,json=multicloudDataTransferConfigId,proto3" json:"multicloud_data_transfer_config_id,omitempty"` + // Required. The `MulticloudDataTransferConfig` resource to create. + MulticloudDataTransferConfig *MulticloudDataTransferConfig `protobuf:"bytes,3,opt,name=multicloud_data_transfer_config,json=multicloudDataTransferConfig,proto3" json:"multicloud_data_transfer_config,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. This prevents + // clients from accidentally creating duplicate `MulticloudDataTransferConfig` + // resources. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateMulticloudDataTransferConfigRequest) Reset() { + *x = CreateMulticloudDataTransferConfigRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateMulticloudDataTransferConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateMulticloudDataTransferConfigRequest) ProtoMessage() {} + +func (x *CreateMulticloudDataTransferConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 CreateMulticloudDataTransferConfigRequest.ProtoReflect.Descriptor instead. +func (*CreateMulticloudDataTransferConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{4} +} + +func (x *CreateMulticloudDataTransferConfigRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateMulticloudDataTransferConfigRequest) GetMulticloudDataTransferConfigId() string { + if x != nil { + return x.MulticloudDataTransferConfigId + } + return "" +} + +func (x *CreateMulticloudDataTransferConfigRequest) GetMulticloudDataTransferConfig() *MulticloudDataTransferConfig { + if x != nil { + return x.MulticloudDataTransferConfig + } + return nil +} + +func (x *CreateMulticloudDataTransferConfigRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message to update a `MulticloudDataTransferConfig` resource. +type UpdateMulticloudDataTransferConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. `FieldMask` is used to specify the fields in the + // `MulticloudDataTransferConfig` resource to be overwritten by the update. + // The fields specified in `update_mask` are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If you + // don't specify a mask, all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The `MulticloudDataTransferConfig` resource to update. + MulticloudDataTransferConfig *MulticloudDataTransferConfig `protobuf:"bytes,2,opt,name=multicloud_data_transfer_config,json=multicloudDataTransferConfig,proto3" json:"multicloud_data_transfer_config,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. This prevents + // clients from accidentally creating duplicate `MulticloudDataTransferConfig` + // resources. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateMulticloudDataTransferConfigRequest) Reset() { + *x = UpdateMulticloudDataTransferConfigRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateMulticloudDataTransferConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateMulticloudDataTransferConfigRequest) ProtoMessage() {} + +func (x *UpdateMulticloudDataTransferConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 UpdateMulticloudDataTransferConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateMulticloudDataTransferConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateMulticloudDataTransferConfigRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateMulticloudDataTransferConfigRequest) GetMulticloudDataTransferConfig() *MulticloudDataTransferConfig { + if x != nil { + return x.MulticloudDataTransferConfig + } + return nil +} + +func (x *UpdateMulticloudDataTransferConfigRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message to delete a `MulticloudDataTransferConfig` resource. +type DeleteMulticloudDataTransferConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the `MulticloudDataTransferConfig` resource to + // delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. This prevents + // clients from accidentally creating duplicate `MulticloudDataTransferConfig` + // resources. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. The etag is computed by the server, and might be sent with update + // and delete requests so that the client has an up-to-date value before + // proceeding. + Etag string `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteMulticloudDataTransferConfigRequest) Reset() { + *x = DeleteMulticloudDataTransferConfigRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteMulticloudDataTransferConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMulticloudDataTransferConfigRequest) ProtoMessage() {} + +func (x *DeleteMulticloudDataTransferConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 DeleteMulticloudDataTransferConfigRequest.ProtoReflect.Descriptor instead. +func (*DeleteMulticloudDataTransferConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{6} +} + +func (x *DeleteMulticloudDataTransferConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteMulticloudDataTransferConfigRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *DeleteMulticloudDataTransferConfigRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// The `Destination` resource. It specifies the IP prefix and the associated +// autonomous system numbers (ASN) that you want to include in a +// `MulticloudDataTransferConfig` resource. +type Destination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of the `Destination` resource. + // Format: + // `projects/{project}/locations/{location}/multicloudDataTransferConfigs/{multicloud_data_transfer_config}/destinations/{destination}`. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Time when the `Destination` resource was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Time when the `Destination` resource was updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. User-defined labels. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The etag is computed by the server, and might be sent with update and + // delete requests so that the client has an up-to-date value before + // proceeding. + Etag string `protobuf:"bytes,5,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. A description of this resource. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Required. Immutable. The IP prefix that represents your workload on another + // CSP. + IpPrefix string `protobuf:"bytes,7,opt,name=ip_prefix,json=ipPrefix,proto3" json:"ip_prefix,omitempty"` + // Required. Unordered list. The list of `DestinationEndpoint` resources + // configured for the IP prefix. + Endpoints []*Destination_DestinationEndpoint `protobuf:"bytes,8,rep,name=endpoints,proto3" json:"endpoints,omitempty"` + // Output only. The timeline of the expected `Destination` states or the + // current rest state. If a state change is expected, the value is `ADDING`, + // `DELETING` or `SUSPENDING`, depending on the action specified. + // + // Example: + // + // "state_timeline": { + // "states": [ + // { + // // The time when the `Destination` resource will be activated. + // "effectiveTime": "2024-12-01T08:00:00Z", + // "state": "ADDING" + // }, + // { + // // The time when the `Destination` resource will be suspended. + // "effectiveTime": "2024-12-01T20:00:00Z", + // "state": "SUSPENDING" + // } + // ] + // } + StateTimeline *StateTimeline `protobuf:"bytes,9,opt,name=state_timeline,json=stateTimeline,proto3" json:"state_timeline,omitempty"` + // Output only. The Google-generated unique ID for the `Destination` resource. + // This value is unique across all `Destination` resources. + // If a resource is deleted and another with the same name is + // created, the new resource is assigned a different and unique ID. + Uid string `protobuf:"bytes,10,opt,name=uid,proto3" json:"uid,omitempty"` +} + +func (x *Destination) Reset() { + *x = Destination{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Destination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Destination) ProtoMessage() {} + +func (x *Destination) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 Destination.ProtoReflect.Descriptor instead. +func (*Destination) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{7} +} + +func (x *Destination) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Destination) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Destination) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Destination) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Destination) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Destination) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Destination) GetIpPrefix() string { + if x != nil { + return x.IpPrefix + } + return "" +} + +func (x *Destination) GetEndpoints() []*Destination_DestinationEndpoint { + if x != nil { + return x.Endpoints + } + return nil +} + +func (x *Destination) GetStateTimeline() *StateTimeline { + if x != nil { + return x.StateTimeline + } + return nil +} + +func (x *Destination) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +// Request message to list `Destination` resources. +type ListDestinationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of results listed per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. An expression that filters the results listed in the response. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. The sort order of the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Optional. If `true`, allow partial responses for multi-regional aggregated + // list requests. + ReturnPartialSuccess bool `protobuf:"varint,6,opt,name=return_partial_success,json=returnPartialSuccess,proto3" json:"return_partial_success,omitempty"` +} + +func (x *ListDestinationsRequest) Reset() { + *x = ListDestinationsRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListDestinationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDestinationsRequest) ProtoMessage() {} + +func (x *ListDestinationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListDestinationsRequest.ProtoReflect.Descriptor instead. +func (*ListDestinationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{8} +} + +func (x *ListDestinationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDestinationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDestinationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListDestinationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListDestinationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListDestinationsRequest) GetReturnPartialSuccess() bool { + if x != nil { + return x.ReturnPartialSuccess + } + return false +} + +// Response message to list `Destination` resources. +type ListDestinationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of `Destination` resources to be listed. + Destinations []*Destination `protobuf:"bytes,1,rep,name=destinations,proto3" json:"destinations,omitempty"` + // The next page token. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListDestinationsResponse) Reset() { + *x = ListDestinationsResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListDestinationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDestinationsResponse) ProtoMessage() {} + +func (x *ListDestinationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListDestinationsResponse.ProtoReflect.Descriptor instead. +func (*ListDestinationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{9} +} + +func (x *ListDestinationsResponse) GetDestinations() []*Destination { + if x != nil { + return x.Destinations + } + return nil +} + +func (x *ListDestinationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListDestinationsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request message to get the details of a `Destination` resource. +type GetDestinationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the `Destination` resource to get. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDestinationRequest) Reset() { + *x = GetDestinationRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetDestinationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDestinationRequest) ProtoMessage() {} + +func (x *GetDestinationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 GetDestinationRequest.ProtoReflect.Descriptor instead. +func (*GetDestinationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{10} +} + +func (x *GetDestinationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message to create a `Destination` resource. +type CreateDestinationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The ID to use for the `Destination` resource, which becomes the + // final component of the `Destination` resource name. + DestinationId string `protobuf:"bytes,2,opt,name=destination_id,json=destinationId,proto3" json:"destination_id,omitempty"` + // Required. The `Destination` resource to create. + Destination *Destination `protobuf:"bytes,3,opt,name=destination,proto3" json:"destination,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. This prevents + // clients from accidentally creating duplicate `Destination` + // resources. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateDestinationRequest) Reset() { + *x = CreateDestinationRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateDestinationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDestinationRequest) ProtoMessage() {} + +func (x *CreateDestinationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 CreateDestinationRequest.ProtoReflect.Descriptor instead. +func (*CreateDestinationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{11} +} + +func (x *CreateDestinationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDestinationRequest) GetDestinationId() string { + if x != nil { + return x.DestinationId + } + return "" +} + +func (x *CreateDestinationRequest) GetDestination() *Destination { + if x != nil { + return x.Destination + } + return nil +} + +func (x *CreateDestinationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message to update a `Destination` resource. +type UpdateDestinationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. `FieldMask is used to specify the fields to be overwritten in the + // `Destination` resource by the update. + // The fields specified in `update_mask` are relative to the resource, not + // the full request. A field is overwritten if it is in the mask. If you + // don't specify a mask, all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The `Destination` resource to update. + Destination *Destination `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateDestinationRequest) Reset() { + *x = UpdateDestinationRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateDestinationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDestinationRequest) ProtoMessage() {} + +func (x *UpdateDestinationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 UpdateDestinationRequest.ProtoReflect.Descriptor instead. +func (*UpdateDestinationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{12} +} + +func (x *UpdateDestinationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateDestinationRequest) GetDestination() *Destination { + if x != nil { + return x.Destination + } + return nil +} + +func (x *UpdateDestinationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message to delete a `Destination` resource. +type DeleteDestinationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the `Destination` resource to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID + // so that if you must retry your request, the server can ignore + // the request if it has already been completed. The server waits + // 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, can ignore the second request. + // + // The request ID must be a valid UUID with the exception that zero UUID + // (00000000-0000-0000-0000-000000000000) isn't supported. + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. The etag is computed by the server, and might be sent with update + // and delete requests so that the client has an up-to-date value before + // proceeding. + Etag string `protobuf:"bytes,3,opt,name=etag,proto3" json:"etag,omitempty"` +} + +func (x *DeleteDestinationRequest) Reset() { + *x = DeleteDestinationRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteDestinationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDestinationRequest) ProtoMessage() {} + +func (x *DeleteDestinationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 DeleteDestinationRequest.ProtoReflect.Descriptor instead. +func (*DeleteDestinationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{13} +} + +func (x *DeleteDestinationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDestinationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *DeleteDestinationRequest) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +// The timeline of the pending states for a resource. +type StateTimeline struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The state and activation time details of the resource state. + States []*StateTimeline_StateMetadata `protobuf:"bytes,1,rep,name=states,proto3" json:"states,omitempty"` +} + +func (x *StateTimeline) Reset() { + *x = StateTimeline{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StateTimeline) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateTimeline) ProtoMessage() {} + +func (x *StateTimeline) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 StateTimeline.ProtoReflect.Descriptor instead. +func (*StateTimeline) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{14} +} + +func (x *StateTimeline) GetStates() []*StateTimeline_StateMetadata { + if x != nil { + return x.States + } + return nil +} + +// A service in your project in a region that is eligible for Data Transfer +// Essentials configuration. +type MulticloudDataTransferSupportedService struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of the service. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The network service tier or regional endpoint supported for + // the service. + ServiceConfigs []*ServiceConfig `protobuf:"bytes,2,rep,name=service_configs,json=serviceConfigs,proto3" json:"service_configs,omitempty"` +} + +func (x *MulticloudDataTransferSupportedService) Reset() { + *x = MulticloudDataTransferSupportedService{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MulticloudDataTransferSupportedService) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MulticloudDataTransferSupportedService) ProtoMessage() {} + +func (x *MulticloudDataTransferSupportedService) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 MulticloudDataTransferSupportedService.ProtoReflect.Descriptor instead. +func (*MulticloudDataTransferSupportedService) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{15} +} + +func (x *MulticloudDataTransferSupportedService) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MulticloudDataTransferSupportedService) GetServiceConfigs() []*ServiceConfig { + if x != nil { + return x.ServiceConfigs + } + return nil +} + +// Specifies eligibility information for the service. +type ServiceConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The eligibility criteria for the service. + EligibilityCriteria ServiceConfig_EligibilityCriteria `protobuf:"varint,1,opt,name=eligibility_criteria,json=eligibilityCriteria,proto3,enum=google.cloud.networkconnectivity.v1beta.ServiceConfig_EligibilityCriteria" json:"eligibility_criteria,omitempty"` + // Output only. The end time for eligibility criteria support. If not + // specified, no planned end time is set. + SupportEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=support_end_time,json=supportEndTime,proto3" json:"support_end_time,omitempty"` +} + +func (x *ServiceConfig) Reset() { + *x = ServiceConfig{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ServiceConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceConfig) ProtoMessage() {} + +func (x *ServiceConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ServiceConfig.ProtoReflect.Descriptor instead. +func (*ServiceConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{16} +} + +func (x *ServiceConfig) GetEligibilityCriteria() ServiceConfig_EligibilityCriteria { + if x != nil { + return x.EligibilityCriteria + } + return ServiceConfig_ELIGIBILITY_CRITERIA_UNSPECIFIED +} + +func (x *ServiceConfig) GetSupportEndTime() *timestamppb.Timestamp { + if x != nil { + return x.SupportEndTime + } + return nil +} + +// Request message to check if a service in your project in a region is +// eligible for Data Transfer Essentials configuration. +type GetMulticloudDataTransferSupportedServiceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the service. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetMulticloudDataTransferSupportedServiceRequest) Reset() { + *x = GetMulticloudDataTransferSupportedServiceRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetMulticloudDataTransferSupportedServiceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMulticloudDataTransferSupportedServiceRequest) ProtoMessage() {} + +func (x *GetMulticloudDataTransferSupportedServiceRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 GetMulticloudDataTransferSupportedServiceRequest.ProtoReflect.Descriptor instead. +func (*GetMulticloudDataTransferSupportedServiceRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{17} +} + +func (x *GetMulticloudDataTransferSupportedServiceRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message to list the services in your project that are eligible for +// Data Transfer Essentials configuration. +type ListMulticloudDataTransferSupportedServicesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of results listed per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) Reset() { + *x = ListMulticloudDataTransferSupportedServicesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMulticloudDataTransferSupportedServicesRequest) ProtoMessage() {} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListMulticloudDataTransferSupportedServicesRequest.ProtoReflect.Descriptor instead. +func (*ListMulticloudDataTransferSupportedServicesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{18} +} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMulticloudDataTransferSupportedServicesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message to list the services in your project in regions that are +// eligible for Data Transfer Essentials configuration. +type ListMulticloudDataTransferSupportedServicesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of supported services. + MulticloudDataTransferSupportedServices []*MulticloudDataTransferSupportedService `protobuf:"bytes,1,rep,name=multicloud_data_transfer_supported_services,json=multicloudDataTransferSupportedServices,proto3" json:"multicloud_data_transfer_supported_services,omitempty"` + // The next page token. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListMulticloudDataTransferSupportedServicesResponse) Reset() { + *x = ListMulticloudDataTransferSupportedServicesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMulticloudDataTransferSupportedServicesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMulticloudDataTransferSupportedServicesResponse) ProtoMessage() {} + +func (x *ListMulticloudDataTransferSupportedServicesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 ListMulticloudDataTransferSupportedServicesResponse.ProtoReflect.Descriptor instead. +func (*ListMulticloudDataTransferSupportedServicesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{19} +} + +func (x *ListMulticloudDataTransferSupportedServicesResponse) GetMulticloudDataTransferSupportedServices() []*MulticloudDataTransferSupportedService { + if x != nil { + return x.MulticloudDataTransferSupportedServices + } + return nil +} + +func (x *ListMulticloudDataTransferSupportedServicesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// The metadata for a `DestinationEndpoint` resource. +type Destination_DestinationEndpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The ASN of the remote IP prefix. + Asn int64 `protobuf:"varint,1,opt,name=asn,proto3" json:"asn,omitempty"` + // Required. The CSP of the remote IP prefix. + Csp string `protobuf:"bytes,2,opt,name=csp,proto3" json:"csp,omitempty"` + // Output only. The state of the `DestinationEndpoint` resource. + State Destination_DestinationEndpoint_State `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.Destination_DestinationEndpoint_State" json:"state,omitempty"` + // Output only. Time when the `DestinationEndpoint` resource was updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *Destination_DestinationEndpoint) Reset() { + *x = Destination_DestinationEndpoint{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Destination_DestinationEndpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Destination_DestinationEndpoint) ProtoMessage() {} + +func (x *Destination_DestinationEndpoint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 Destination_DestinationEndpoint.ProtoReflect.Descriptor instead. +func (*Destination_DestinationEndpoint) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *Destination_DestinationEndpoint) GetAsn() int64 { + if x != nil { + return x.Asn + } + return 0 +} + +func (x *Destination_DestinationEndpoint) GetCsp() string { + if x != nil { + return x.Csp + } + return "" +} + +func (x *Destination_DestinationEndpoint) GetState() Destination_DestinationEndpoint_State { + if x != nil { + return x.State + } + return Destination_DestinationEndpoint_STATE_UNSPECIFIED +} + +func (x *Destination_DestinationEndpoint) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// The state and activation time details of the resource state. +type StateTimeline_StateMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The state of the resource. + State StateTimeline_StateMetadata_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.StateTimeline_StateMetadata_State" json:"state,omitempty"` + // Output only. Accompanies only the transient states, which include + // `ADDING`, `DELETING`, and `SUSPENDING`, to denote the time until which + // the transient state of the resource will be effective. For instance, if + // the state is `ADDING`, this field shows the time when the resource state + // transitions to `ACTIVE`. + EffectiveTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=effective_time,json=effectiveTime,proto3" json:"effective_time,omitempty"` +} + +func (x *StateTimeline_StateMetadata) Reset() { + *x = StateTimeline_StateMetadata{} + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StateTimeline_StateMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StateTimeline_StateMetadata) ProtoMessage() {} + +func (x *StateTimeline_StateMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_data_transfer_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 StateTimeline_StateMetadata.ProtoReflect.Descriptor instead. +func (*StateTimeline_StateMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP(), []int{14, 0} +} + +func (x *StateTimeline_StateMetadata) GetState() StateTimeline_StateMetadata_State { + if x != nil { + return x.State + } + return StateTimeline_StateMetadata_STATE_UNSPECIFIED +} + +func (x *StateTimeline_StateMetadata) GetEffectiveTime() *timestamppb.Timestamp { + if x != nil { + return x.EffectiveTime + } + return nil +} + +var File_google_cloud_networkconnectivity_v1beta_data_transfer_proto protoreflect.FileDescriptor + +var file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDesc = []byte{ + 0x0a, 0x3b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x8e, 0x08, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 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, 0x40, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x6e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, + 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x12, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, + 0x0a, 0x19, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x74, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, + 0x03, 0x75, 0x69, 0x64, 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, + 0x73, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x4c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x3a, 0xeb, 0x01, 0xea, 0x41, 0xe7, 0x01, 0x0a, 0x3f, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x67, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x2a, 0x1d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x32, 0x1c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x22, 0xab, 0x02, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, + 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x39, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x72, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x22, 0x86, 0x02, 0x0a, 0x29, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8e, + 0x01, 0x0a, 0x20, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x1d, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x26, 0x47, 0x65, + 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x5b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xff, 0x02, 0x0a, 0x29, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x22, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x1e, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x49, 0x64, 0x12, 0x91, 0x01, 0x0a, 0x1f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, + 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xad, 0x02, 0x0a, 0x29, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, + 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x6b, 0x12, 0x91, 0x01, 0x0a, 0x1f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1c, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, + 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x29, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x5b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x47, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x22, 0x99, 0x09, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 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, 0x40, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x5d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 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, + 0x12, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x09, 0x69, 0x70, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, + 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x69, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x6e, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x06, 0xe0, 0x41, + 0x06, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, + 0x62, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x0b, 0xe0, 0x41, 0x03, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x1a, 0xa8, 0x02, 0x0a, 0x13, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x61, 0x73, + 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x63, 0x73, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x03, 0x63, 0x73, 0x70, 0x12, 0x69, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x02, 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, 0x3a, 0xd4, 0x01, 0xea, 0x41, 0xd0, 0x01, 0x0a, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x82, 0x01, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x32, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xb8, 0x02, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, + 0x39, 0x0a, 0x16, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x61, + 0x6c, 0x5f, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x61, 0x6c, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xbe, 0x01, 0x0a, 0x18, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x63, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0xb0, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x5f, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x47, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x41, 0x0a, 0x3f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2a, + 0x0a, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x5b, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, + 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xe5, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, + 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x12, 0x5b, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xab, 0x01, 0x0a, 0x18, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x36, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x30, 0x0a, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, + 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x12, 0x17, 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x22, 0x98, 0x03, 0x0a, 0x0d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x61, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x1a, 0xa3, + 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x65, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x63, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0a, 0x0a, 0x06, 0x41, 0x44, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, + 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, + 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, + 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, + 0x45, 0x44, 0x10, 0x05, 0x22, 0xc8, 0x03, 0x0a, 0x26, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 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, 0x64, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x3a, 0x9e, + 0x02, 0xea, 0x41, 0x9a, 0x02, 0x0a, 0x49, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x7c, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x2a, 0x27, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x32, 0x26, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, + 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, + 0x99, 0x03, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x82, 0x01, 0x0a, 0x14, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x13, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x72, + 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0e, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x13, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x24, 0x0a, 0x20, 0x45, 0x4c, 0x49, + 0x47, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x45, 0x52, 0x49, + 0x41, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x25, 0x0a, 0x21, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, + 0x43, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x5f, + 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, + 0x4b, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x53, + 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x2b, + 0x0a, 0x27, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x4e, 0x44, 0x50, 0x4f, 0x49, + 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x47, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x50, + 0x4f, 0x49, 0x4e, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x03, 0x22, 0x99, 0x01, 0x0a, 0x30, + 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x65, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x51, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x4b, 0x0a, 0x49, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x32, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x8d, 0x02, 0x0a, 0x33, 0x4c, 0x69, 0x73, 0x74, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0xad, 0x01, 0x0a, 0x2b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x27, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x32, 0xb4, 0x1d, 0x0a, 0x13, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0xa2, 0x02, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x56, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, 0x45, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x12, 0x8f, 0x02, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0x54, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x12, + 0x45, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x88, 0x03, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x75, + 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0xee, 0x01, 0xca, 0x41, 0x31, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x49, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2c, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x68, 0x3a, 0x1f, 0x6d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x45, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x12, 0x8b, 0x03, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xf1, 0x01, 0xca, 0x41, + 0x31, 0x0a, 0x1c, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x2b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x88, 0x01, 0x3a, 0x1f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 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, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0x9b, 0x02, 0x0a, 0x22, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x52, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0xca, 0x41, 0x2a, 0x0a, + 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x2a, 0x45, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xfe, 0x01, + 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x12, 0x54, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xeb, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x63, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x12, 0x54, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, 0x75, 0x6c, + 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa8, 0x02, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x21, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x54, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xaa, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xb2, 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x6f, 0x3a, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x32, 0x60, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 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, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x88, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x90, 0x01, 0xca, + 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x2a, 0x54, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 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, + 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x2f, + 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xb7, 0x02, 0x0a, 0x29, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x22, 0x5e, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xca, 0x02, 0x0a, 0x2b, 0x4c, 0x69, + 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x5b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, + 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x5c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x51, 0x12, 0x4f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, + 0x75, 0x6c, 0x74, 0x69, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x1a, 0x56, 0xca, 0x41, 0x22, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 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, 0xa2, + 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x11, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x70, 0x62, 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x27, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescOnce sync.Once + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescData = file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDesc +) + +func file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescGZIP() []byte { + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescOnce.Do(func() { + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescData) + }) + return file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDescData +} + +var file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_goTypes = []any{ + (Destination_DestinationEndpoint_State)(0), // 0: google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint.State + (StateTimeline_StateMetadata_State)(0), // 1: google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata.State + (ServiceConfig_EligibilityCriteria)(0), // 2: google.cloud.networkconnectivity.v1beta.ServiceConfig.EligibilityCriteria + (*MulticloudDataTransferConfig)(nil), // 3: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig + (*ListMulticloudDataTransferConfigsRequest)(nil), // 4: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferConfigsRequest + (*ListMulticloudDataTransferConfigsResponse)(nil), // 5: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferConfigsResponse + (*GetMulticloudDataTransferConfigRequest)(nil), // 6: google.cloud.networkconnectivity.v1beta.GetMulticloudDataTransferConfigRequest + (*CreateMulticloudDataTransferConfigRequest)(nil), // 7: google.cloud.networkconnectivity.v1beta.CreateMulticloudDataTransferConfigRequest + (*UpdateMulticloudDataTransferConfigRequest)(nil), // 8: google.cloud.networkconnectivity.v1beta.UpdateMulticloudDataTransferConfigRequest + (*DeleteMulticloudDataTransferConfigRequest)(nil), // 9: google.cloud.networkconnectivity.v1beta.DeleteMulticloudDataTransferConfigRequest + (*Destination)(nil), // 10: google.cloud.networkconnectivity.v1beta.Destination + (*ListDestinationsRequest)(nil), // 11: google.cloud.networkconnectivity.v1beta.ListDestinationsRequest + (*ListDestinationsResponse)(nil), // 12: google.cloud.networkconnectivity.v1beta.ListDestinationsResponse + (*GetDestinationRequest)(nil), // 13: google.cloud.networkconnectivity.v1beta.GetDestinationRequest + (*CreateDestinationRequest)(nil), // 14: google.cloud.networkconnectivity.v1beta.CreateDestinationRequest + (*UpdateDestinationRequest)(nil), // 15: google.cloud.networkconnectivity.v1beta.UpdateDestinationRequest + (*DeleteDestinationRequest)(nil), // 16: google.cloud.networkconnectivity.v1beta.DeleteDestinationRequest + (*StateTimeline)(nil), // 17: google.cloud.networkconnectivity.v1beta.StateTimeline + (*MulticloudDataTransferSupportedService)(nil), // 18: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferSupportedService + (*ServiceConfig)(nil), // 19: google.cloud.networkconnectivity.v1beta.ServiceConfig + (*GetMulticloudDataTransferSupportedServiceRequest)(nil), // 20: google.cloud.networkconnectivity.v1beta.GetMulticloudDataTransferSupportedServiceRequest + (*ListMulticloudDataTransferSupportedServicesRequest)(nil), // 21: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferSupportedServicesRequest + (*ListMulticloudDataTransferSupportedServicesResponse)(nil), // 22: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferSupportedServicesResponse + nil, // 23: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.LabelsEntry + nil, // 24: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.ServicesEntry + (*Destination_DestinationEndpoint)(nil), // 25: google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint + nil, // 26: google.cloud.networkconnectivity.v1beta.Destination.LabelsEntry + (*StateTimeline_StateMetadata)(nil), // 27: google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata + (*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 29: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 30: google.longrunning.Operation +} +var file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_depIdxs = []int32{ + 28, // 0: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.create_time:type_name -> google.protobuf.Timestamp + 28, // 1: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.update_time:type_name -> google.protobuf.Timestamp + 23, // 2: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.labels:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.LabelsEntry + 24, // 3: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.services:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.ServicesEntry + 3, // 4: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferConfigsResponse.multicloud_data_transfer_configs:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig + 3, // 5: google.cloud.networkconnectivity.v1beta.CreateMulticloudDataTransferConfigRequest.multicloud_data_transfer_config:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig + 29, // 6: google.cloud.networkconnectivity.v1beta.UpdateMulticloudDataTransferConfigRequest.update_mask:type_name -> google.protobuf.FieldMask + 3, // 7: google.cloud.networkconnectivity.v1beta.UpdateMulticloudDataTransferConfigRequest.multicloud_data_transfer_config:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig + 28, // 8: google.cloud.networkconnectivity.v1beta.Destination.create_time:type_name -> google.protobuf.Timestamp + 28, // 9: google.cloud.networkconnectivity.v1beta.Destination.update_time:type_name -> google.protobuf.Timestamp + 26, // 10: google.cloud.networkconnectivity.v1beta.Destination.labels:type_name -> google.cloud.networkconnectivity.v1beta.Destination.LabelsEntry + 25, // 11: google.cloud.networkconnectivity.v1beta.Destination.endpoints:type_name -> google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint + 17, // 12: google.cloud.networkconnectivity.v1beta.Destination.state_timeline:type_name -> google.cloud.networkconnectivity.v1beta.StateTimeline + 10, // 13: google.cloud.networkconnectivity.v1beta.ListDestinationsResponse.destinations:type_name -> google.cloud.networkconnectivity.v1beta.Destination + 10, // 14: google.cloud.networkconnectivity.v1beta.CreateDestinationRequest.destination:type_name -> google.cloud.networkconnectivity.v1beta.Destination + 29, // 15: google.cloud.networkconnectivity.v1beta.UpdateDestinationRequest.update_mask:type_name -> google.protobuf.FieldMask + 10, // 16: google.cloud.networkconnectivity.v1beta.UpdateDestinationRequest.destination:type_name -> google.cloud.networkconnectivity.v1beta.Destination + 27, // 17: google.cloud.networkconnectivity.v1beta.StateTimeline.states:type_name -> google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata + 19, // 18: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferSupportedService.service_configs:type_name -> google.cloud.networkconnectivity.v1beta.ServiceConfig + 2, // 19: google.cloud.networkconnectivity.v1beta.ServiceConfig.eligibility_criteria:type_name -> google.cloud.networkconnectivity.v1beta.ServiceConfig.EligibilityCriteria + 28, // 20: google.cloud.networkconnectivity.v1beta.ServiceConfig.support_end_time:type_name -> google.protobuf.Timestamp + 18, // 21: google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferSupportedServicesResponse.multicloud_data_transfer_supported_services:type_name -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferSupportedService + 17, // 22: google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig.ServicesEntry.value:type_name -> google.cloud.networkconnectivity.v1beta.StateTimeline + 0, // 23: google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint.state:type_name -> google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint.State + 28, // 24: google.cloud.networkconnectivity.v1beta.Destination.DestinationEndpoint.update_time:type_name -> google.protobuf.Timestamp + 1, // 25: google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata.state:type_name -> google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata.State + 28, // 26: google.cloud.networkconnectivity.v1beta.StateTimeline.StateMetadata.effective_time:type_name -> google.protobuf.Timestamp + 4, // 27: google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferConfigs:input_type -> google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferConfigsRequest + 6, // 28: google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferConfig:input_type -> google.cloud.networkconnectivity.v1beta.GetMulticloudDataTransferConfigRequest + 7, // 29: google.cloud.networkconnectivity.v1beta.DataTransferService.CreateMulticloudDataTransferConfig:input_type -> google.cloud.networkconnectivity.v1beta.CreateMulticloudDataTransferConfigRequest + 8, // 30: google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateMulticloudDataTransferConfig:input_type -> google.cloud.networkconnectivity.v1beta.UpdateMulticloudDataTransferConfigRequest + 9, // 31: google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteMulticloudDataTransferConfig:input_type -> google.cloud.networkconnectivity.v1beta.DeleteMulticloudDataTransferConfigRequest + 11, // 32: google.cloud.networkconnectivity.v1beta.DataTransferService.ListDestinations:input_type -> google.cloud.networkconnectivity.v1beta.ListDestinationsRequest + 13, // 33: google.cloud.networkconnectivity.v1beta.DataTransferService.GetDestination:input_type -> google.cloud.networkconnectivity.v1beta.GetDestinationRequest + 14, // 34: google.cloud.networkconnectivity.v1beta.DataTransferService.CreateDestination:input_type -> google.cloud.networkconnectivity.v1beta.CreateDestinationRequest + 15, // 35: google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateDestination:input_type -> google.cloud.networkconnectivity.v1beta.UpdateDestinationRequest + 16, // 36: google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteDestination:input_type -> google.cloud.networkconnectivity.v1beta.DeleteDestinationRequest + 20, // 37: google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferSupportedService:input_type -> google.cloud.networkconnectivity.v1beta.GetMulticloudDataTransferSupportedServiceRequest + 21, // 38: google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferSupportedServices:input_type -> google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferSupportedServicesRequest + 5, // 39: google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferConfigs:output_type -> google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferConfigsResponse + 3, // 40: google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferConfig:output_type -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferConfig + 30, // 41: google.cloud.networkconnectivity.v1beta.DataTransferService.CreateMulticloudDataTransferConfig:output_type -> google.longrunning.Operation + 30, // 42: google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateMulticloudDataTransferConfig:output_type -> google.longrunning.Operation + 30, // 43: google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteMulticloudDataTransferConfig:output_type -> google.longrunning.Operation + 12, // 44: google.cloud.networkconnectivity.v1beta.DataTransferService.ListDestinations:output_type -> google.cloud.networkconnectivity.v1beta.ListDestinationsResponse + 10, // 45: google.cloud.networkconnectivity.v1beta.DataTransferService.GetDestination:output_type -> google.cloud.networkconnectivity.v1beta.Destination + 30, // 46: google.cloud.networkconnectivity.v1beta.DataTransferService.CreateDestination:output_type -> google.longrunning.Operation + 30, // 47: google.cloud.networkconnectivity.v1beta.DataTransferService.UpdateDestination:output_type -> google.longrunning.Operation + 30, // 48: google.cloud.networkconnectivity.v1beta.DataTransferService.DeleteDestination:output_type -> google.longrunning.Operation + 18, // 49: google.cloud.networkconnectivity.v1beta.DataTransferService.GetMulticloudDataTransferSupportedService:output_type -> google.cloud.networkconnectivity.v1beta.MulticloudDataTransferSupportedService + 22, // 50: google.cloud.networkconnectivity.v1beta.DataTransferService.ListMulticloudDataTransferSupportedServices:output_type -> google.cloud.networkconnectivity.v1beta.ListMulticloudDataTransferSupportedServicesResponse + 39, // [39:51] is the sub-list for method output_type + 27, // [27:39] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name +} + +func init() { file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_init() } +func file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_init() { + if File_google_cloud_networkconnectivity_v1beta_data_transfer_proto != nil { + return + } + file_google_cloud_networkconnectivity_v1beta_common_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDesc, + NumEnums: 3, + NumMessages: 25, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_goTypes, + DependencyIndexes: file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_depIdxs, + EnumInfos: file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_enumTypes, + MessageInfos: file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_msgTypes, + }.Build() + File_google_cloud_networkconnectivity_v1beta_data_transfer_proto = out.File + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_rawDesc = nil + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_goTypes = nil + file_google_cloud_networkconnectivity_v1beta_data_transfer_proto_depIdxs = nil +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer_grpc.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer_grpc.pb.go new file mode 100644 index 000000000000..e2bbead02d40 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/data_transfer_grpc.pb.go @@ -0,0 +1,564 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/data_transfer.proto + +package networkconnectivitypb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + DataTransferService_ListMulticloudDataTransferConfigs_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/ListMulticloudDataTransferConfigs" + DataTransferService_GetMulticloudDataTransferConfig_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/GetMulticloudDataTransferConfig" + DataTransferService_CreateMulticloudDataTransferConfig_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/CreateMulticloudDataTransferConfig" + DataTransferService_UpdateMulticloudDataTransferConfig_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/UpdateMulticloudDataTransferConfig" + DataTransferService_DeleteMulticloudDataTransferConfig_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/DeleteMulticloudDataTransferConfig" + DataTransferService_ListDestinations_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/ListDestinations" + DataTransferService_GetDestination_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/GetDestination" + DataTransferService_CreateDestination_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/CreateDestination" + DataTransferService_UpdateDestination_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/UpdateDestination" + DataTransferService_DeleteDestination_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/DeleteDestination" + DataTransferService_GetMulticloudDataTransferSupportedService_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/GetMulticloudDataTransferSupportedService" + DataTransferService_ListMulticloudDataTransferSupportedServices_FullMethodName = "/google.cloud.networkconnectivity.v1beta.DataTransferService/ListMulticloudDataTransferSupportedServices" +) + +// DataTransferServiceClient is the client API for DataTransferService 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 DataTransferServiceClient interface { + // Lists the `MulticloudDataTransferConfig` resources in a specified project + // and location. + ListMulticloudDataTransferConfigs(ctx context.Context, in *ListMulticloudDataTransferConfigsRequest, opts ...grpc.CallOption) (*ListMulticloudDataTransferConfigsResponse, error) + // Gets the details of a `MulticloudDataTransferConfig` resource. + GetMulticloudDataTransferConfig(ctx context.Context, in *GetMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*MulticloudDataTransferConfig, error) + // Creates a `MulticloudDataTransferConfig` resource in a specified project + // and location. + CreateMulticloudDataTransferConfig(ctx context.Context, in *CreateMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates a `MulticloudDataTransferConfig` resource in a specified project + // and location. + UpdateMulticloudDataTransferConfig(ctx context.Context, in *UpdateMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a `MulticloudDataTransferConfig` resource. + DeleteMulticloudDataTransferConfig(ctx context.Context, in *DeleteMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists the `Destination` resources in a specified project and location. + ListDestinations(ctx context.Context, in *ListDestinationsRequest, opts ...grpc.CallOption) (*ListDestinationsResponse, error) + // Gets the details of a `Destination` resource. + GetDestination(ctx context.Context, in *GetDestinationRequest, opts ...grpc.CallOption) (*Destination, error) + // Creates a `Destination` resource in a specified project and location. + CreateDestination(ctx context.Context, in *CreateDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates a `Destination` resource in a specified project and location. + UpdateDestination(ctx context.Context, in *UpdateDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a `Destination` resource. + DeleteDestination(ctx context.Context, in *DeleteDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets the details of a service that is supported for Data Transfer + // Essentials. + GetMulticloudDataTransferSupportedService(ctx context.Context, in *GetMulticloudDataTransferSupportedServiceRequest, opts ...grpc.CallOption) (*MulticloudDataTransferSupportedService, error) + // Lists the services in the project for a region that are supported for + // Data Transfer Essentials. + ListMulticloudDataTransferSupportedServices(ctx context.Context, in *ListMulticloudDataTransferSupportedServicesRequest, opts ...grpc.CallOption) (*ListMulticloudDataTransferSupportedServicesResponse, error) +} + +type dataTransferServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewDataTransferServiceClient(cc grpc.ClientConnInterface) DataTransferServiceClient { + return &dataTransferServiceClient{cc} +} + +func (c *dataTransferServiceClient) ListMulticloudDataTransferConfigs(ctx context.Context, in *ListMulticloudDataTransferConfigsRequest, opts ...grpc.CallOption) (*ListMulticloudDataTransferConfigsResponse, error) { + out := new(ListMulticloudDataTransferConfigsResponse) + err := c.cc.Invoke(ctx, DataTransferService_ListMulticloudDataTransferConfigs_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) GetMulticloudDataTransferConfig(ctx context.Context, in *GetMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*MulticloudDataTransferConfig, error) { + out := new(MulticloudDataTransferConfig) + err := c.cc.Invoke(ctx, DataTransferService_GetMulticloudDataTransferConfig_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) CreateMulticloudDataTransferConfig(ctx context.Context, in *CreateMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_CreateMulticloudDataTransferConfig_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) UpdateMulticloudDataTransferConfig(ctx context.Context, in *UpdateMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_UpdateMulticloudDataTransferConfig_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) DeleteMulticloudDataTransferConfig(ctx context.Context, in *DeleteMulticloudDataTransferConfigRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_DeleteMulticloudDataTransferConfig_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) ListDestinations(ctx context.Context, in *ListDestinationsRequest, opts ...grpc.CallOption) (*ListDestinationsResponse, error) { + out := new(ListDestinationsResponse) + err := c.cc.Invoke(ctx, DataTransferService_ListDestinations_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) GetDestination(ctx context.Context, in *GetDestinationRequest, opts ...grpc.CallOption) (*Destination, error) { + out := new(Destination) + err := c.cc.Invoke(ctx, DataTransferService_GetDestination_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) CreateDestination(ctx context.Context, in *CreateDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_CreateDestination_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) UpdateDestination(ctx context.Context, in *UpdateDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_UpdateDestination_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) DeleteDestination(ctx context.Context, in *DeleteDestinationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, DataTransferService_DeleteDestination_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) GetMulticloudDataTransferSupportedService(ctx context.Context, in *GetMulticloudDataTransferSupportedServiceRequest, opts ...grpc.CallOption) (*MulticloudDataTransferSupportedService, error) { + out := new(MulticloudDataTransferSupportedService) + err := c.cc.Invoke(ctx, DataTransferService_GetMulticloudDataTransferSupportedService_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *dataTransferServiceClient) ListMulticloudDataTransferSupportedServices(ctx context.Context, in *ListMulticloudDataTransferSupportedServicesRequest, opts ...grpc.CallOption) (*ListMulticloudDataTransferSupportedServicesResponse, error) { + out := new(ListMulticloudDataTransferSupportedServicesResponse) + err := c.cc.Invoke(ctx, DataTransferService_ListMulticloudDataTransferSupportedServices_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DataTransferServiceServer is the server API for DataTransferService service. +// All implementations should embed UnimplementedDataTransferServiceServer +// for forward compatibility +type DataTransferServiceServer interface { + // Lists the `MulticloudDataTransferConfig` resources in a specified project + // and location. + ListMulticloudDataTransferConfigs(context.Context, *ListMulticloudDataTransferConfigsRequest) (*ListMulticloudDataTransferConfigsResponse, error) + // Gets the details of a `MulticloudDataTransferConfig` resource. + GetMulticloudDataTransferConfig(context.Context, *GetMulticloudDataTransferConfigRequest) (*MulticloudDataTransferConfig, error) + // Creates a `MulticloudDataTransferConfig` resource in a specified project + // and location. + CreateMulticloudDataTransferConfig(context.Context, *CreateMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) + // Updates a `MulticloudDataTransferConfig` resource in a specified project + // and location. + UpdateMulticloudDataTransferConfig(context.Context, *UpdateMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) + // Deletes a `MulticloudDataTransferConfig` resource. + DeleteMulticloudDataTransferConfig(context.Context, *DeleteMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) + // Lists the `Destination` resources in a specified project and location. + ListDestinations(context.Context, *ListDestinationsRequest) (*ListDestinationsResponse, error) + // Gets the details of a `Destination` resource. + GetDestination(context.Context, *GetDestinationRequest) (*Destination, error) + // Creates a `Destination` resource in a specified project and location. + CreateDestination(context.Context, *CreateDestinationRequest) (*longrunningpb.Operation, error) + // Updates a `Destination` resource in a specified project and location. + UpdateDestination(context.Context, *UpdateDestinationRequest) (*longrunningpb.Operation, error) + // Deletes a `Destination` resource. + DeleteDestination(context.Context, *DeleteDestinationRequest) (*longrunningpb.Operation, error) + // Gets the details of a service that is supported for Data Transfer + // Essentials. + GetMulticloudDataTransferSupportedService(context.Context, *GetMulticloudDataTransferSupportedServiceRequest) (*MulticloudDataTransferSupportedService, error) + // Lists the services in the project for a region that are supported for + // Data Transfer Essentials. + ListMulticloudDataTransferSupportedServices(context.Context, *ListMulticloudDataTransferSupportedServicesRequest) (*ListMulticloudDataTransferSupportedServicesResponse, error) +} + +// UnimplementedDataTransferServiceServer should be embedded to have forward compatible implementations. +type UnimplementedDataTransferServiceServer struct { +} + +func (UnimplementedDataTransferServiceServer) ListMulticloudDataTransferConfigs(context.Context, *ListMulticloudDataTransferConfigsRequest) (*ListMulticloudDataTransferConfigsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListMulticloudDataTransferConfigs not implemented") +} +func (UnimplementedDataTransferServiceServer) GetMulticloudDataTransferConfig(context.Context, *GetMulticloudDataTransferConfigRequest) (*MulticloudDataTransferConfig, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMulticloudDataTransferConfig not implemented") +} +func (UnimplementedDataTransferServiceServer) CreateMulticloudDataTransferConfig(context.Context, *CreateMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateMulticloudDataTransferConfig not implemented") +} +func (UnimplementedDataTransferServiceServer) UpdateMulticloudDataTransferConfig(context.Context, *UpdateMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateMulticloudDataTransferConfig not implemented") +} +func (UnimplementedDataTransferServiceServer) DeleteMulticloudDataTransferConfig(context.Context, *DeleteMulticloudDataTransferConfigRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteMulticloudDataTransferConfig not implemented") +} +func (UnimplementedDataTransferServiceServer) ListDestinations(context.Context, *ListDestinationsRequest) (*ListDestinationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDestinations not implemented") +} +func (UnimplementedDataTransferServiceServer) GetDestination(context.Context, *GetDestinationRequest) (*Destination, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDestination not implemented") +} +func (UnimplementedDataTransferServiceServer) CreateDestination(context.Context, *CreateDestinationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDestination not implemented") +} +func (UnimplementedDataTransferServiceServer) UpdateDestination(context.Context, *UpdateDestinationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDestination not implemented") +} +func (UnimplementedDataTransferServiceServer) DeleteDestination(context.Context, *DeleteDestinationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDestination not implemented") +} +func (UnimplementedDataTransferServiceServer) GetMulticloudDataTransferSupportedService(context.Context, *GetMulticloudDataTransferSupportedServiceRequest) (*MulticloudDataTransferSupportedService, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMulticloudDataTransferSupportedService not implemented") +} +func (UnimplementedDataTransferServiceServer) ListMulticloudDataTransferSupportedServices(context.Context, *ListMulticloudDataTransferSupportedServicesRequest) (*ListMulticloudDataTransferSupportedServicesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListMulticloudDataTransferSupportedServices not implemented") +} + +// UnsafeDataTransferServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to DataTransferServiceServer will +// result in compilation errors. +type UnsafeDataTransferServiceServer interface { + mustEmbedUnimplementedDataTransferServiceServer() +} + +func RegisterDataTransferServiceServer(s grpc.ServiceRegistrar, srv DataTransferServiceServer) { + s.RegisterService(&DataTransferService_ServiceDesc, srv) +} + +func _DataTransferService_ListMulticloudDataTransferConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListMulticloudDataTransferConfigsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).ListMulticloudDataTransferConfigs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_ListMulticloudDataTransferConfigs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).ListMulticloudDataTransferConfigs(ctx, req.(*ListMulticloudDataTransferConfigsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_GetMulticloudDataTransferConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMulticloudDataTransferConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).GetMulticloudDataTransferConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_GetMulticloudDataTransferConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).GetMulticloudDataTransferConfig(ctx, req.(*GetMulticloudDataTransferConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_CreateMulticloudDataTransferConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateMulticloudDataTransferConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).CreateMulticloudDataTransferConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_CreateMulticloudDataTransferConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).CreateMulticloudDataTransferConfig(ctx, req.(*CreateMulticloudDataTransferConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_UpdateMulticloudDataTransferConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateMulticloudDataTransferConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).UpdateMulticloudDataTransferConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_UpdateMulticloudDataTransferConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).UpdateMulticloudDataTransferConfig(ctx, req.(*UpdateMulticloudDataTransferConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_DeleteMulticloudDataTransferConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteMulticloudDataTransferConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).DeleteMulticloudDataTransferConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_DeleteMulticloudDataTransferConfig_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).DeleteMulticloudDataTransferConfig(ctx, req.(*DeleteMulticloudDataTransferConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_ListDestinations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDestinationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).ListDestinations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_ListDestinations_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).ListDestinations(ctx, req.(*ListDestinationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_GetDestination_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDestinationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).GetDestination(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_GetDestination_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).GetDestination(ctx, req.(*GetDestinationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_CreateDestination_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDestinationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).CreateDestination(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_CreateDestination_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).CreateDestination(ctx, req.(*CreateDestinationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_UpdateDestination_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDestinationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).UpdateDestination(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_UpdateDestination_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).UpdateDestination(ctx, req.(*UpdateDestinationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_DeleteDestination_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDestinationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).DeleteDestination(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_DeleteDestination_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).DeleteDestination(ctx, req.(*DeleteDestinationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_GetMulticloudDataTransferSupportedService_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMulticloudDataTransferSupportedServiceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).GetMulticloudDataTransferSupportedService(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_GetMulticloudDataTransferSupportedService_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).GetMulticloudDataTransferSupportedService(ctx, req.(*GetMulticloudDataTransferSupportedServiceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _DataTransferService_ListMulticloudDataTransferSupportedServices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListMulticloudDataTransferSupportedServicesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DataTransferServiceServer).ListMulticloudDataTransferSupportedServices(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: DataTransferService_ListMulticloudDataTransferSupportedServices_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DataTransferServiceServer).ListMulticloudDataTransferSupportedServices(ctx, req.(*ListMulticloudDataTransferSupportedServicesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// DataTransferService_ServiceDesc is the grpc.ServiceDesc for DataTransferService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var DataTransferService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.networkconnectivity.v1beta.DataTransferService", + HandlerType: (*DataTransferServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListMulticloudDataTransferConfigs", + Handler: _DataTransferService_ListMulticloudDataTransferConfigs_Handler, + }, + { + MethodName: "GetMulticloudDataTransferConfig", + Handler: _DataTransferService_GetMulticloudDataTransferConfig_Handler, + }, + { + MethodName: "CreateMulticloudDataTransferConfig", + Handler: _DataTransferService_CreateMulticloudDataTransferConfig_Handler, + }, + { + MethodName: "UpdateMulticloudDataTransferConfig", + Handler: _DataTransferService_UpdateMulticloudDataTransferConfig_Handler, + }, + { + MethodName: "DeleteMulticloudDataTransferConfig", + Handler: _DataTransferService_DeleteMulticloudDataTransferConfig_Handler, + }, + { + MethodName: "ListDestinations", + Handler: _DataTransferService_ListDestinations_Handler, + }, + { + MethodName: "GetDestination", + Handler: _DataTransferService_GetDestination_Handler, + }, + { + MethodName: "CreateDestination", + Handler: _DataTransferService_CreateDestination_Handler, + }, + { + MethodName: "UpdateDestination", + Handler: _DataTransferService_UpdateDestination_Handler, + }, + { + MethodName: "DeleteDestination", + Handler: _DataTransferService_DeleteDestination_Handler, + }, + { + MethodName: "GetMulticloudDataTransferSupportedService", + Handler: _DataTransferService_GetMulticloudDataTransferSupportedService_Handler, + }, + { + MethodName: "ListMulticloudDataTransferSupportedServices", + Handler: _DataTransferService_ListMulticloudDataTransferSupportedServices_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/networkconnectivity/v1beta/data_transfer.proto", +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/hub.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/hub.pb.go new file mode 100644 index 000000000000..28157086f774 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/hub.pb.go @@ -0,0 +1,8323 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/hub.proto + +package networkconnectivitypb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The route's type +type RouteType int32 + +const ( + // No route type information specified + RouteType_ROUTE_TYPE_UNSPECIFIED RouteType = 0 + // The route leads to a destination within the primary address range of the + // VPC network's subnet. + RouteType_VPC_PRIMARY_SUBNET RouteType = 1 + // The route leads to a destination within the secondary address range of the + // VPC network's subnet. + RouteType_VPC_SECONDARY_SUBNET RouteType = 2 + // The route leads to a destination in a dynamic route. Dynamic routes are + // derived from Border Gateway Protocol (BGP) advertisements received from an + // NCC hybrid spoke. + RouteType_DYNAMIC_ROUTE RouteType = 3 +) + +// Enum value maps for RouteType. +var ( + RouteType_name = map[int32]string{ + 0: "ROUTE_TYPE_UNSPECIFIED", + 1: "VPC_PRIMARY_SUBNET", + 2: "VPC_SECONDARY_SUBNET", + 3: "DYNAMIC_ROUTE", + } + RouteType_value = map[string]int32{ + "ROUTE_TYPE_UNSPECIFIED": 0, + "VPC_PRIMARY_SUBNET": 1, + "VPC_SECONDARY_SUBNET": 2, + "DYNAMIC_ROUTE": 3, + } +) + +func (x RouteType) Enum() *RouteType { + p := new(RouteType) + *p = x + return p +} + +func (x RouteType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RouteType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[0].Descriptor() +} + +func (RouteType) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[0] +} + +func (x RouteType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RouteType.Descriptor instead. +func (RouteType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{0} +} + +// The State enum represents the lifecycle stage of a Network Connectivity +// Center resource. +type State int32 + +const ( + // No state information available + State_STATE_UNSPECIFIED State = 0 + // The resource's create operation is in progress. + State_CREATING State = 1 + // The resource is active + State_ACTIVE State = 2 + // The resource's delete operation is in progress. + State_DELETING State = 3 + // The resource's accept operation is in progress. + State_ACCEPTING State = 8 + // The resource's reject operation is in progress. + State_REJECTING State = 9 + // The resource's update operation is in progress. + State_UPDATING State = 6 + // The resource is inactive. + State_INACTIVE State = 7 + // The hub associated with this spoke resource has been deleted. + // This state applies to spoke resources only. + State_OBSOLETE State = 10 + // The resource is in an undefined state due to resource creation or deletion + // failure. You can try to delete the resource later or contact support for + // help. + State_FAILED State = 11 +) + +// Enum value maps for State. +var ( + State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "ACTIVE", + 3: "DELETING", + 8: "ACCEPTING", + 9: "REJECTING", + 6: "UPDATING", + 7: "INACTIVE", + 10: "OBSOLETE", + 11: "FAILED", + } + State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "DELETING": 3, + "ACCEPTING": 8, + "REJECTING": 9, + "UPDATING": 6, + "INACTIVE": 7, + "OBSOLETE": 10, + "FAILED": 11, + } +) + +func (x State) Enum() *State { + p := new(State) + *p = x + return p +} + +func (x State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[1].Descriptor() +} + +func (State) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[1] +} + +func (x State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use State.Descriptor instead. +func (State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{1} +} + +// The SpokeType enum represents the type of spoke. The type +// reflects the kind of resource that a spoke is associated with. +type SpokeType int32 + +const ( + // Unspecified spoke type. + SpokeType_SPOKE_TYPE_UNSPECIFIED SpokeType = 0 + // Spokes associated with VPN tunnels. + SpokeType_VPN_TUNNEL SpokeType = 1 + // Spokes associated with VLAN attachments. + SpokeType_INTERCONNECT_ATTACHMENT SpokeType = 2 + // Spokes associated with router appliance instances. + SpokeType_ROUTER_APPLIANCE SpokeType = 3 + // Spokes associated with VPC networks. + SpokeType_VPC_NETWORK SpokeType = 4 + // Spokes that are NCC gateways. + SpokeType_GATEWAY SpokeType = 5 + // Spokes that are backed by a producer VPC network. + SpokeType_PRODUCER_VPC_NETWORK SpokeType = 7 +) + +// Enum value maps for SpokeType. +var ( + SpokeType_name = map[int32]string{ + 0: "SPOKE_TYPE_UNSPECIFIED", + 1: "VPN_TUNNEL", + 2: "INTERCONNECT_ATTACHMENT", + 3: "ROUTER_APPLIANCE", + 4: "VPC_NETWORK", + 5: "GATEWAY", + 7: "PRODUCER_VPC_NETWORK", + } + SpokeType_value = map[string]int32{ + "SPOKE_TYPE_UNSPECIFIED": 0, + "VPN_TUNNEL": 1, + "INTERCONNECT_ATTACHMENT": 2, + "ROUTER_APPLIANCE": 3, + "VPC_NETWORK": 4, + "GATEWAY": 5, + "PRODUCER_VPC_NETWORK": 7, + } +) + +func (x SpokeType) Enum() *SpokeType { + p := new(SpokeType) + *p = x + return p +} + +func (x SpokeType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpokeType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[2].Descriptor() +} + +func (SpokeType) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[2] +} + +func (x SpokeType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SpokeType.Descriptor instead. +func (SpokeType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{2} +} + +// This enum controls the policy mode used in a hub. +type PolicyMode int32 + +const ( + // Policy mode is unspecified. It defaults to PRESET + // with preset_topology = MESH. + PolicyMode_POLICY_MODE_UNSPECIFIED PolicyMode = 0 + // Hub uses one of the preset topologies. + PolicyMode_PRESET PolicyMode = 1 +) + +// Enum value maps for PolicyMode. +var ( + PolicyMode_name = map[int32]string{ + 0: "POLICY_MODE_UNSPECIFIED", + 1: "PRESET", + } + PolicyMode_value = map[string]int32{ + "POLICY_MODE_UNSPECIFIED": 0, + "PRESET": 1, + } +) + +func (x PolicyMode) Enum() *PolicyMode { + p := new(PolicyMode) + *p = x + return p +} + +func (x PolicyMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PolicyMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[3].Descriptor() +} + +func (PolicyMode) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[3] +} + +func (x PolicyMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyMode.Descriptor instead. +func (PolicyMode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{3} +} + +// The list of available preset topologies. +type PresetTopology int32 + +const ( + // Preset topology is unspecified. When policy_mode = PRESET, + // it defaults to MESH. + PresetTopology_PRESET_TOPOLOGY_UNSPECIFIED PresetTopology = 0 + // Mesh topology is implemented. Group `default` is automatically created. + // All spokes in the hub are added to group `default`. + PresetTopology_MESH PresetTopology = 2 + // Star topology is implemented. Two groups, `center` and `edge`, are + // automatically created along with hub creation. Spokes have to join one of + // the groups during creation. + PresetTopology_STAR PresetTopology = 3 + // Hybrid inspection has 4 groups ('non-prod', 'prod', 'services', and + // 'untrusted') that are automatically created along with hub creation. + PresetTopology_HYBRID_INSPECTION PresetTopology = 4 +) + +// Enum value maps for PresetTopology. +var ( + PresetTopology_name = map[int32]string{ + 0: "PRESET_TOPOLOGY_UNSPECIFIED", + 2: "MESH", + 3: "STAR", + 4: "HYBRID_INSPECTION", + } + PresetTopology_value = map[string]int32{ + "PRESET_TOPOLOGY_UNSPECIFIED": 0, + "MESH": 2, + "STAR": 3, + "HYBRID_INSPECTION": 4, + } +) + +func (x PresetTopology) Enum() *PresetTopology { + p := new(PresetTopology) + *p = x + return p +} + +func (x PresetTopology) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PresetTopology) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[4].Descriptor() +} + +func (PresetTopology) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[4] +} + +func (x PresetTopology) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PresetTopology.Descriptor instead. +func (PresetTopology) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{4} +} + +// Supported features for a location +type LocationFeature int32 + +const ( + // No publicly supported feature in this location + LocationFeature_LOCATION_FEATURE_UNSPECIFIED LocationFeature = 0 + // Site-to-cloud spokes are supported in this location + LocationFeature_SITE_TO_CLOUD_SPOKES LocationFeature = 1 + // Site-to-site spokes are supported in this location + LocationFeature_SITE_TO_SITE_SPOKES LocationFeature = 2 + // Gateway spokes are supported in this location. + LocationFeature_GATEWAY_SPOKES LocationFeature = 3 +) + +// Enum value maps for LocationFeature. +var ( + LocationFeature_name = map[int32]string{ + 0: "LOCATION_FEATURE_UNSPECIFIED", + 1: "SITE_TO_CLOUD_SPOKES", + 2: "SITE_TO_SITE_SPOKES", + 3: "GATEWAY_SPOKES", + } + LocationFeature_value = map[string]int32{ + "LOCATION_FEATURE_UNSPECIFIED": 0, + "SITE_TO_CLOUD_SPOKES": 1, + "SITE_TO_SITE_SPOKES": 2, + "GATEWAY_SPOKES": 3, + } +) + +func (x LocationFeature) Enum() *LocationFeature { + p := new(LocationFeature) + *p = x + return p +} + +func (x LocationFeature) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LocationFeature) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[5].Descriptor() +} + +func (LocationFeature) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[5] +} + +func (x LocationFeature) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LocationFeature.Descriptor instead. +func (LocationFeature) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{5} +} + +// The Code enum represents the various reasons for the state of the spoke. +type Spoke_StateReason_Code int32 + +const ( + // No information available. + Spoke_StateReason_CODE_UNSPECIFIED Spoke_StateReason_Code = 0 + // The proposed spoke is pending review. + Spoke_StateReason_PENDING_REVIEW Spoke_StateReason_Code = 1 + // The proposed spoke has been rejected by the hub administrator. + Spoke_StateReason_REJECTED Spoke_StateReason_Code = 2 + // The spoke has been deactivated internally. + Spoke_StateReason_PAUSED Spoke_StateReason_Code = 3 + // Network Connectivity Center encountered errors while accepting + // the spoke. + Spoke_StateReason_FAILED Spoke_StateReason_Code = 4 + // The proposed spoke update is pending review. + Spoke_StateReason_UPDATE_PENDING_REVIEW Spoke_StateReason_Code = 5 + // The proposed spoke update has been rejected by the hub administrator. + Spoke_StateReason_UPDATE_REJECTED Spoke_StateReason_Code = 6 + // Network Connectivity Center encountered errors while accepting + // the spoke update. + Spoke_StateReason_UPDATE_FAILED Spoke_StateReason_Code = 7 +) + +// Enum value maps for Spoke_StateReason_Code. +var ( + Spoke_StateReason_Code_name = map[int32]string{ + 0: "CODE_UNSPECIFIED", + 1: "PENDING_REVIEW", + 2: "REJECTED", + 3: "PAUSED", + 4: "FAILED", + 5: "UPDATE_PENDING_REVIEW", + 6: "UPDATE_REJECTED", + 7: "UPDATE_FAILED", + } + Spoke_StateReason_Code_value = map[string]int32{ + "CODE_UNSPECIFIED": 0, + "PENDING_REVIEW": 1, + "REJECTED": 2, + "PAUSED": 3, + "FAILED": 4, + "UPDATE_PENDING_REVIEW": 5, + "UPDATE_REJECTED": 6, + "UPDATE_FAILED": 7, + } +) + +func (x Spoke_StateReason_Code) Enum() *Spoke_StateReason_Code { + p := new(Spoke_StateReason_Code) + *p = x + return p +} + +func (x Spoke_StateReason_Code) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Spoke_StateReason_Code) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[6].Descriptor() +} + +func (Spoke_StateReason_Code) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[6] +} + +func (x Spoke_StateReason_Code) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Spoke_StateReason_Code.Descriptor instead. +func (Spoke_StateReason_Code) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{2, 0, 0} +} + +// Enum that controls which spoke fields are included in the response. +type ListHubSpokesRequest_SpokeView int32 + +const ( + // The spoke view is unspecified. When the spoke view is unspecified, the + // API returns the same fields as the `BASIC` view. + ListHubSpokesRequest_SPOKE_VIEW_UNSPECIFIED ListHubSpokesRequest_SpokeView = 0 + // Includes `name`, `create_time`, `hub`, `unique_id`, `state`, `reasons`, + // and `spoke_type`. This is the default value. + ListHubSpokesRequest_BASIC ListHubSpokesRequest_SpokeView = 1 + // Includes all spoke fields except `labels`. + // You can use the `DETAILED` view only when you set the `spoke_locations` + // field to `[global]`. + ListHubSpokesRequest_DETAILED ListHubSpokesRequest_SpokeView = 2 +) + +// Enum value maps for ListHubSpokesRequest_SpokeView. +var ( + ListHubSpokesRequest_SpokeView_name = map[int32]string{ + 0: "SPOKE_VIEW_UNSPECIFIED", + 1: "BASIC", + 2: "DETAILED", + } + ListHubSpokesRequest_SpokeView_value = map[string]int32{ + "SPOKE_VIEW_UNSPECIFIED": 0, + "BASIC": 1, + "DETAILED": 2, + } +) + +func (x ListHubSpokesRequest_SpokeView) Enum() *ListHubSpokesRequest_SpokeView { + p := new(ListHubSpokesRequest_SpokeView) + *p = x + return p +} + +func (x ListHubSpokesRequest_SpokeView) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ListHubSpokesRequest_SpokeView) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[7].Descriptor() +} + +func (ListHubSpokesRequest_SpokeView) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[7] +} + +func (x ListHubSpokesRequest_SpokeView) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ListHubSpokesRequest_SpokeView.Descriptor instead. +func (ListHubSpokesRequest_SpokeView) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{13, 0} +} + +// The Code enum represents the state of the Private Service Connect +// propagation. +type PscPropagationStatus_Code int32 + +const ( + // The code is unspecified. + PscPropagationStatus_CODE_UNSPECIFIED PscPropagationStatus_Code = 0 + // The propagated Private Service Connect connection is ready. + PscPropagationStatus_READY PscPropagationStatus_Code = 1 + // The Private Service Connect connection is propagating. This is a + // transient state. + PscPropagationStatus_PROPAGATING PscPropagationStatus_Code = 2 + // The Private Service Connect connection propagation failed because the VPC + // network or the project of the target spoke has exceeded the connection + // limit set by the producer. + PscPropagationStatus_ERROR_PRODUCER_PROPAGATED_CONNECTION_LIMIT_EXCEEDED PscPropagationStatus_Code = 3 + // The Private Service Connect connection propagation failed because the NAT + // IP subnet space has been exhausted. It is equivalent to the `Needs + // attention` status of the Private Service Connect connection. See + // https://cloud.google.com/vpc/docs/about-accessing-vpc-hosted-services-endpoints#connection-statuses. + PscPropagationStatus_ERROR_PRODUCER_NAT_IP_SPACE_EXHAUSTED PscPropagationStatus_Code = 4 + // The Private Service Connect connection propagation failed because the + // `PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK` quota in the + // producer VPC network has been exceeded. + PscPropagationStatus_ERROR_PRODUCER_QUOTA_EXCEEDED PscPropagationStatus_Code = 5 + // The Private Service Connect connection propagation failed because the + // `PSC_PROPAGATED_CONNECTIONS_PER_VPC_NETWORK` quota in the consumer + // VPC network has been exceeded. + PscPropagationStatus_ERROR_CONSUMER_QUOTA_EXCEEDED PscPropagationStatus_Code = 6 +) + +// Enum value maps for PscPropagationStatus_Code. +var ( + PscPropagationStatus_Code_name = map[int32]string{ + 0: "CODE_UNSPECIFIED", + 1: "READY", + 2: "PROPAGATING", + 3: "ERROR_PRODUCER_PROPAGATED_CONNECTION_LIMIT_EXCEEDED", + 4: "ERROR_PRODUCER_NAT_IP_SPACE_EXHAUSTED", + 5: "ERROR_PRODUCER_QUOTA_EXCEEDED", + 6: "ERROR_CONSUMER_QUOTA_EXCEEDED", + } + PscPropagationStatus_Code_value = map[string]int32{ + "CODE_UNSPECIFIED": 0, + "READY": 1, + "PROPAGATING": 2, + "ERROR_PRODUCER_PROPAGATED_CONNECTION_LIMIT_EXCEEDED": 3, + "ERROR_PRODUCER_NAT_IP_SPACE_EXHAUSTED": 4, + "ERROR_PRODUCER_QUOTA_EXCEEDED": 5, + "ERROR_CONSUMER_QUOTA_EXCEEDED": 6, + } +) + +func (x PscPropagationStatus_Code) Enum() *PscPropagationStatus_Code { + p := new(PscPropagationStatus_Code) + *p = x + return p +} + +func (x PscPropagationStatus_Code) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PscPropagationStatus_Code) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[8].Descriptor() +} + +func (PscPropagationStatus_Code) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[8] +} + +func (x PscPropagationStatus_Code) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PscPropagationStatus_Code.Descriptor instead. +func (PscPropagationStatus_Code) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{18, 0} +} + +// The aggregate processing capacity of this gateway. +type Gateway_GatewayCapacity int32 + +const ( + // The gateway capacity is unspecified. + Gateway_GATEWAY_CAPACITY_UNSPECIFIED Gateway_GatewayCapacity = 0 + // The gateway has 1 Gbps of aggregate processing capacity + Gateway_CAPACITY_1_GBPS Gateway_GatewayCapacity = 5 + // The gateway has 10 Gbps of aggregate processing capacity + Gateway_CAPACITY_10_GBPS Gateway_GatewayCapacity = 1 + // The gateway has 100 Gbps of aggregate processing capacity + Gateway_CAPACITY_100_GBPS Gateway_GatewayCapacity = 4 +) + +// Enum value maps for Gateway_GatewayCapacity. +var ( + Gateway_GatewayCapacity_name = map[int32]string{ + 0: "GATEWAY_CAPACITY_UNSPECIFIED", + 5: "CAPACITY_1_GBPS", + 1: "CAPACITY_10_GBPS", + 4: "CAPACITY_100_GBPS", + } + Gateway_GatewayCapacity_value = map[string]int32{ + "GATEWAY_CAPACITY_UNSPECIFIED": 0, + "CAPACITY_1_GBPS": 5, + "CAPACITY_10_GBPS": 1, + "CAPACITY_100_GBPS": 4, + } +) + +func (x Gateway_GatewayCapacity) Enum() *Gateway_GatewayCapacity { + p := new(Gateway_GatewayCapacity) + *p = x + return p +} + +func (x Gateway_GatewayCapacity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Gateway_GatewayCapacity) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[9].Descriptor() +} + +func (Gateway_GatewayCapacity) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[9] +} + +func (x Gateway_GatewayCapacity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Gateway_GatewayCapacity.Descriptor instead. +func (Gateway_GatewayCapacity) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{45, 0} +} + +// The recipient of an advertised route. +type GatewayAdvertisedRoute_Recipient int32 + +const ( + // No recipient specified. By default routes are advertised to the hub. + GatewayAdvertisedRoute_RECIPIENT_UNSPECIFIED GatewayAdvertisedRoute_Recipient = 0 + // Advertises a route toward the hub. Other spokes reachable from this spoke + // will receive the route. + GatewayAdvertisedRoute_ADVERTISE_TO_HUB GatewayAdvertisedRoute_Recipient = 1 +) + +// Enum value maps for GatewayAdvertisedRoute_Recipient. +var ( + GatewayAdvertisedRoute_Recipient_name = map[int32]string{ + 0: "RECIPIENT_UNSPECIFIED", + 1: "ADVERTISE_TO_HUB", + } + GatewayAdvertisedRoute_Recipient_value = map[string]int32{ + "RECIPIENT_UNSPECIFIED": 0, + "ADVERTISE_TO_HUB": 1, + } +) + +func (x GatewayAdvertisedRoute_Recipient) Enum() *GatewayAdvertisedRoute_Recipient { + p := new(GatewayAdvertisedRoute_Recipient) + *p = x + return p +} + +func (x GatewayAdvertisedRoute_Recipient) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GatewayAdvertisedRoute_Recipient) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[10].Descriptor() +} + +func (GatewayAdvertisedRoute_Recipient) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes[10] +} + +func (x GatewayAdvertisedRoute_Recipient) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GatewayAdvertisedRoute_Recipient.Descriptor instead. +func (GatewayAdvertisedRoute_Recipient) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{46, 0} +} + +// A Network Connectivity Center hub is a global management resource to which +// you attach spokes. A single hub can contain spokes from multiple regions. +// However, if any of a hub's spokes use the site-to-site data transfer feature, +// the resources associated with those spokes must all be in the same VPC +// network. Spokes that do not use site-to-site data transfer can be associated +// with any VPC network in your project. +type Hub struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The name of the hub. Hub names must be unique. They use the + // following form: + // + // `projects/{project_number}/locations/global/hubs/{hub_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the hub was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the hub was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. An optional description of the hub. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Google-generated UUID for the hub. This value is unique + // across all hub resources. If a hub is deleted and another with the same + // name is created, the new hub is assigned a different unique_id. + UniqueId string `protobuf:"bytes,8,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"` + // Output only. The current lifecycle state of this hub. + State State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Output only. The VPC networks associated with this hub's spokes. + // + // This field is read-only. Network Connectivity Center automatically + // populates it based on the set of spokes attached to the hub. + RoutingVpcs []*RoutingVPC `protobuf:"bytes,10,rep,name=routing_vpcs,json=routingVpcs,proto3" json:"routing_vpcs,omitempty"` + // Output only. The route tables that belong to this hub. They use the + // following form: + // + // `projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}` + // + // This field is read-only. Network Connectivity Center automatically + // populates it based on the route tables nested under the hub. + RouteTables []string `protobuf:"bytes,11,rep,name=route_tables,json=routeTables,proto3" json:"route_tables,omitempty"` + // Output only. A summary of the spokes associated with a hub. The + // summary includes a count of spokes according to type + // and according to state. If any spokes are inactive, + // the summary also lists the reasons they are inactive, + // including a count for each reason. + SpokeSummary *SpokeSummary `protobuf:"bytes,12,opt,name=spoke_summary,json=spokeSummary,proto3" json:"spoke_summary,omitempty"` + // Optional. The policy mode of this hub. This field can be either + // PRESET or CUSTOM. If unspecified, the + // policy_mode defaults to PRESET. + PolicyMode PolicyMode `protobuf:"varint,13,opt,name=policy_mode,json=policyMode,proto3,enum=google.cloud.networkconnectivity.v1beta.PolicyMode" json:"policy_mode,omitempty"` + // Optional. The topology implemented in this hub. Currently, this field is + // only used when policy_mode = PRESET. The available preset topologies are + // MESH and STAR. If preset_topology is unspecified and policy_mode = PRESET, + // the preset_topology defaults to MESH. When policy_mode = CUSTOM, + // the preset_topology is set to PRESET_TOPOLOGY_UNSPECIFIED. + PresetTopology PresetTopology `protobuf:"varint,14,opt,name=preset_topology,json=presetTopology,proto3,enum=google.cloud.networkconnectivity.v1beta.PresetTopology" json:"preset_topology,omitempty"` + // Optional. Whether Private Service Connect connection propagation is enabled + // for the hub. If true, Private Service Connect endpoints in VPC spokes + // attached to the hub are made accessible to other VPC spokes attached to the + // hub. The default value is false. + ExportPsc *bool `protobuf:"varint,15,opt,name=export_psc,json=exportPsc,proto3,oneof" json:"export_psc,omitempty"` +} + +func (x *Hub) Reset() { + *x = Hub{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Hub) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Hub) ProtoMessage() {} + +func (x *Hub) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 Hub.ProtoReflect.Descriptor instead. +func (*Hub) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{0} +} + +func (x *Hub) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Hub) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Hub) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Hub) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Hub) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Hub) GetUniqueId() string { + if x != nil { + return x.UniqueId + } + return "" +} + +func (x *Hub) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *Hub) GetRoutingVpcs() []*RoutingVPC { + if x != nil { + return x.RoutingVpcs + } + return nil +} + +func (x *Hub) GetRouteTables() []string { + if x != nil { + return x.RouteTables + } + return nil +} + +func (x *Hub) GetSpokeSummary() *SpokeSummary { + if x != nil { + return x.SpokeSummary + } + return nil +} + +func (x *Hub) GetPolicyMode() PolicyMode { + if x != nil { + return x.PolicyMode + } + return PolicyMode_POLICY_MODE_UNSPECIFIED +} + +func (x *Hub) GetPresetTopology() PresetTopology { + if x != nil { + return x.PresetTopology + } + return PresetTopology_PRESET_TOPOLOGY_UNSPECIFIED +} + +func (x *Hub) GetExportPsc() bool { + if x != nil && x.ExportPsc != nil { + return *x.ExportPsc + } + return false +} + +// RoutingVPC contains information about the VPC networks associated +// with the spokes of a Network Connectivity Center hub. +type RoutingVPC struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the VPC network. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Output only. If true, indicates that this VPC network is currently + // associated with spokes that use the data transfer feature (spokes where the + // site_to_site_data_transfer field is set to true). If you create new spokes + // that use data transfer, they must be associated with this VPC network. At + // most, one VPC network will have this field set to true. + RequiredForNewSiteToSiteDataTransferSpokes bool `protobuf:"varint,2,opt,name=required_for_new_site_to_site_data_transfer_spokes,json=requiredForNewSiteToSiteDataTransferSpokes,proto3" json:"required_for_new_site_to_site_data_transfer_spokes,omitempty"` +} + +func (x *RoutingVPC) Reset() { + *x = RoutingVPC{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RoutingVPC) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutingVPC) ProtoMessage() {} + +func (x *RoutingVPC) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RoutingVPC.ProtoReflect.Descriptor instead. +func (*RoutingVPC) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{1} +} + +func (x *RoutingVPC) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *RoutingVPC) GetRequiredForNewSiteToSiteDataTransferSpokes() bool { + if x != nil { + return x.RequiredForNewSiteToSiteDataTransferSpokes + } + return false +} + +// A Network Connectivity Center spoke represents one or more network +// connectivity resources. +// +// When you create a spoke, you associate it with a hub. You must also +// identify a value for exactly one of the following fields: +// +// * linked_vpn_tunnels +// * linked_interconnect_attachments +// * linked_router_appliance_instances +// * linked_vpc_network +type Spoke struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The name of the spoke. Spoke names must be unique. They use the + // following form: + // + // `projects/{project_number}/locations/{region}/spokes/{spoke_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the spoke was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the spoke was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. An optional description of the spoke. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Immutable. The name of the hub that this spoke is attached to. + Hub string `protobuf:"bytes,6,opt,name=hub,proto3" json:"hub,omitempty"` + // Optional. The name of the group that this spoke is associated with. + Group string `protobuf:"bytes,23,opt,name=group,proto3" json:"group,omitempty"` + // Optional. VPN tunnels that are associated with the spoke. + LinkedVpnTunnels *LinkedVpnTunnels `protobuf:"bytes,17,opt,name=linked_vpn_tunnels,json=linkedVpnTunnels,proto3" json:"linked_vpn_tunnels,omitempty"` + // Optional. VLAN attachments that are associated with the spoke. + LinkedInterconnectAttachments *LinkedInterconnectAttachments `protobuf:"bytes,18,opt,name=linked_interconnect_attachments,json=linkedInterconnectAttachments,proto3" json:"linked_interconnect_attachments,omitempty"` + // Optional. Router appliance instances that are associated with the spoke. + LinkedRouterApplianceInstances *LinkedRouterApplianceInstances `protobuf:"bytes,19,opt,name=linked_router_appliance_instances,json=linkedRouterApplianceInstances,proto3" json:"linked_router_appliance_instances,omitempty"` + // Optional. VPC network that is associated with the spoke. + LinkedVpcNetwork *LinkedVpcNetwork `protobuf:"bytes,20,opt,name=linked_vpc_network,json=linkedVpcNetwork,proto3" json:"linked_vpc_network,omitempty"` + // Optional. This is a gateway that can apply specialized processing to + // traffic going through it. + Gateway *Gateway `protobuf:"bytes,24,opt,name=gateway,proto3" json:"gateway,omitempty"` + // Optional. The linked producer VPC that is associated with the spoke. + LinkedProducerVpcNetwork *LinkedProducerVpcNetwork `protobuf:"bytes,26,opt,name=linked_producer_vpc_network,json=linkedProducerVpcNetwork,proto3" json:"linked_producer_vpc_network,omitempty"` + // Output only. The Google-generated UUID for the spoke. This value is unique + // across all spoke resources. If a spoke is deleted and another with the same + // name is created, the new spoke is assigned a different `unique_id`. + UniqueId string `protobuf:"bytes,11,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"` + // Output only. The current lifecycle state of this spoke. + State State `protobuf:"varint,15,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Output only. The reasons for current state of the spoke. + Reasons []*Spoke_StateReason `protobuf:"bytes,21,rep,name=reasons,proto3" json:"reasons,omitempty"` + // Output only. The type of resource associated with the spoke. + SpokeType SpokeType `protobuf:"varint,22,opt,name=spoke_type,json=spokeType,proto3,enum=google.cloud.networkconnectivity.v1beta.SpokeType" json:"spoke_type,omitempty"` + // Optional. This checksum is computed by the server based on the value of + // other fields, and may be sent on update and delete requests to ensure the + // client has an up-to-date value before proceeding. + Etag string `protobuf:"bytes,27,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. The list of fields waiting for hub administrator's approval. + FieldPathsPendingUpdate []string `protobuf:"bytes,28,rep,name=field_paths_pending_update,json=fieldPathsPendingUpdate,proto3" json:"field_paths_pending_update,omitempty"` +} + +func (x *Spoke) Reset() { + *x = Spoke{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Spoke) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Spoke) ProtoMessage() {} + +func (x *Spoke) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 Spoke.ProtoReflect.Descriptor instead. +func (*Spoke) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{2} +} + +func (x *Spoke) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Spoke) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Spoke) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Spoke) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Spoke) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Spoke) GetHub() string { + if x != nil { + return x.Hub + } + return "" +} + +func (x *Spoke) GetGroup() string { + if x != nil { + return x.Group + } + return "" +} + +func (x *Spoke) GetLinkedVpnTunnels() *LinkedVpnTunnels { + if x != nil { + return x.LinkedVpnTunnels + } + return nil +} + +func (x *Spoke) GetLinkedInterconnectAttachments() *LinkedInterconnectAttachments { + if x != nil { + return x.LinkedInterconnectAttachments + } + return nil +} + +func (x *Spoke) GetLinkedRouterApplianceInstances() *LinkedRouterApplianceInstances { + if x != nil { + return x.LinkedRouterApplianceInstances + } + return nil +} + +func (x *Spoke) GetLinkedVpcNetwork() *LinkedVpcNetwork { + if x != nil { + return x.LinkedVpcNetwork + } + return nil +} + +func (x *Spoke) GetGateway() *Gateway { + if x != nil { + return x.Gateway + } + return nil +} + +func (x *Spoke) GetLinkedProducerVpcNetwork() *LinkedProducerVpcNetwork { + if x != nil { + return x.LinkedProducerVpcNetwork + } + return nil +} + +func (x *Spoke) GetUniqueId() string { + if x != nil { + return x.UniqueId + } + return "" +} + +func (x *Spoke) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *Spoke) GetReasons() []*Spoke_StateReason { + if x != nil { + return x.Reasons + } + return nil +} + +func (x *Spoke) GetSpokeType() SpokeType { + if x != nil { + return x.SpokeType + } + return SpokeType_SPOKE_TYPE_UNSPECIFIED +} + +func (x *Spoke) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *Spoke) GetFieldPathsPendingUpdate() []string { + if x != nil { + return x.FieldPathsPendingUpdate + } + return nil +} + +type RouteTable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The name of the route table. Route table names must be unique. + // They use the following form: + // + // `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the route table was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the route table was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // An optional description of the route table. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Google-generated UUID for the route table. This value is + // unique across all route table resources. If a route table is deleted and + // another with the same name is created, the new route table is assigned + // a different `uid`. + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The current lifecycle state of this route table. + State State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` +} + +func (x *RouteTable) Reset() { + *x = RouteTable{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteTable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteTable) ProtoMessage() {} + +func (x *RouteTable) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RouteTable.ProtoReflect.Descriptor instead. +func (*RouteTable) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{3} +} + +func (x *RouteTable) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RouteTable) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *RouteTable) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *RouteTable) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *RouteTable) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *RouteTable) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *RouteTable) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +// A route defines a path from VM instances within a spoke to a specific +// destination resource. Only VPC spokes have routes. +type Route struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The name of the route. Route names must be unique. Route names + // use the following form: + // + // `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the route was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the route was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The destination IP address range. + IpCidrRange string `protobuf:"bytes,1,opt,name=ip_cidr_range,json=ipCidrRange,proto3" json:"ip_cidr_range,omitempty"` + // Output only. The route's type. Its type is determined by the properties of + // its IP address range. + Type RouteType `protobuf:"varint,10,opt,name=type,proto3,enum=google.cloud.networkconnectivity.v1beta.RouteType" json:"type,omitempty"` + // Immutable. The destination VPC network for packets on this route. + NextHopVpcNetwork *NextHopVpcNetwork `protobuf:"bytes,2,opt,name=next_hop_vpc_network,json=nextHopVpcNetwork,proto3" json:"next_hop_vpc_network,omitempty"` + // Optional labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // An optional description of the route. + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Google-generated UUID for the route. This value is unique + // across all Network Connectivity Center route resources. If a + // route is deleted and another with the same name is created, + // the new route is assigned a different `uid`. + Uid string `protobuf:"bytes,8,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The current lifecycle state of the route. + State State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Immutable. The spoke that this route leads to. + // Example: projects/12345/locations/global/spokes/SPOKE + Spoke string `protobuf:"bytes,11,opt,name=spoke,proto3" json:"spoke,omitempty"` + // Output only. The origin location of the route. + // Uses the following form: "projects/{project}/locations/{location}" + // Example: projects/1234/locations/us-central1 + Location string `protobuf:"bytes,12,opt,name=location,proto3" json:"location,omitempty"` + // Output only. The priority of this route. Priority is used to break ties in + // cases where a destination matches more than one route. In these cases the + // route with the lowest-numbered priority value wins. + Priority int64 `protobuf:"varint,13,opt,name=priority,proto3" json:"priority,omitempty"` + // Immutable. The next-hop VPN tunnel for packets on this route. + NextHopVpnTunnel *NextHopVPNTunnel `protobuf:"bytes,14,opt,name=next_hop_vpn_tunnel,json=nextHopVpnTunnel,proto3" json:"next_hop_vpn_tunnel,omitempty"` + // Immutable. The next-hop Router appliance instance for packets on this + // route. + NextHopRouterApplianceInstance *NextHopRouterApplianceInstance `protobuf:"bytes,15,opt,name=next_hop_router_appliance_instance,json=nextHopRouterApplianceInstance,proto3" json:"next_hop_router_appliance_instance,omitempty"` + // Immutable. The next-hop VLAN attachment for packets on this route. + NextHopInterconnectAttachment *NextHopInterconnectAttachment `protobuf:"bytes,16,opt,name=next_hop_interconnect_attachment,json=nextHopInterconnectAttachment,proto3" json:"next_hop_interconnect_attachment,omitempty"` + // Immutable. The next-hop spoke for packets on this route. + NextHopSpoke *NextHopSpoke `protobuf:"bytes,18,opt,name=next_hop_spoke,json=nextHopSpoke,proto3" json:"next_hop_spoke,omitempty"` +} + +func (x *Route) Reset() { + *x = Route{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Route) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Route) ProtoMessage() {} + +func (x *Route) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 Route.ProtoReflect.Descriptor instead. +func (*Route) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{4} +} + +func (x *Route) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Route) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Route) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Route) GetIpCidrRange() string { + if x != nil { + return x.IpCidrRange + } + return "" +} + +func (x *Route) GetType() RouteType { + if x != nil { + return x.Type + } + return RouteType_ROUTE_TYPE_UNSPECIFIED +} + +func (x *Route) GetNextHopVpcNetwork() *NextHopVpcNetwork { + if x != nil { + return x.NextHopVpcNetwork + } + return nil +} + +func (x *Route) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Route) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Route) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Route) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *Route) GetSpoke() string { + if x != nil { + return x.Spoke + } + return "" +} + +func (x *Route) GetLocation() string { + if x != nil { + return x.Location + } + return "" +} + +func (x *Route) GetPriority() int64 { + if x != nil { + return x.Priority + } + return 0 +} + +func (x *Route) GetNextHopVpnTunnel() *NextHopVPNTunnel { + if x != nil { + return x.NextHopVpnTunnel + } + return nil +} + +func (x *Route) GetNextHopRouterApplianceInstance() *NextHopRouterApplianceInstance { + if x != nil { + return x.NextHopRouterApplianceInstance + } + return nil +} + +func (x *Route) GetNextHopInterconnectAttachment() *NextHopInterconnectAttachment { + if x != nil { + return x.NextHopInterconnectAttachment + } + return nil +} + +func (x *Route) GetNextHopSpoke() *NextHopSpoke { + if x != nil { + return x.NextHopSpoke + } + return nil +} + +// A group represents a subset of spokes attached to a hub. +type Group struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The name of the group. Group names must be unique. They + // use the following form: + // + // `projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the group was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the group was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. The description of the group. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Google-generated UUID for the group. This value is unique + // across all group resources. If a group is deleted and + // another with the same name is created, the new route table is assigned + // a different unique_id. + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The current lifecycle state of this group. + State State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Optional. The auto-accept setting for this group. + AutoAccept *AutoAccept `protobuf:"bytes,8,opt,name=auto_accept,json=autoAccept,proto3" json:"auto_accept,omitempty"` + // Output only. The name of the route table that corresponds to this group. + // They use the following form: + // `projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}` + RouteTable string `protobuf:"bytes,9,opt,name=route_table,json=routeTable,proto3" json:"route_table,omitempty"` +} + +func (x *Group) Reset() { + *x = Group{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Group) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Group) ProtoMessage() {} + +func (x *Group) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 Group.ProtoReflect.Descriptor instead. +func (*Group) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{5} +} + +func (x *Group) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Group) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Group) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Group) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Group) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Group) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Group) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *Group) GetAutoAccept() *AutoAccept { + if x != nil { + return x.AutoAccept + } + return nil +} + +func (x *Group) GetRouteTable() string { + if x != nil { + return x.RouteTable + } + return "" +} + +// The auto-accept setting for a group controls whether +// proposed spokes are automatically attached to the hub. If auto-accept is +// enabled, the spoke immediately is attached to the hub and becomes part of the +// group. In this case, the new spoke is in the ACTIVE state. +// If auto-accept is disabled, the spoke goes to the INACTIVE +// state, and it must be reviewed and accepted by a hub +// administrator. +type AutoAccept struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. A list of project ids or project numbers for which you want + // to enable auto-accept. The auto-accept setting is applied to + // spokes being created or updated in these projects. + AutoAcceptProjects []string `protobuf:"bytes,1,rep,name=auto_accept_projects,json=autoAcceptProjects,proto3" json:"auto_accept_projects,omitempty"` +} + +func (x *AutoAccept) Reset() { + *x = AutoAccept{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AutoAccept) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutoAccept) ProtoMessage() {} + +func (x *AutoAccept) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 AutoAccept.ProtoReflect.Descriptor instead. +func (*AutoAccept) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{6} +} + +func (x *AutoAccept) GetAutoAcceptProjects() []string { + if x != nil { + return x.AutoAcceptProjects + } + return nil +} + +// Request for +// [HubService.ListHubs][google.cloud.networkconnectivity.v1beta.HubService.ListHubs] +// method. +type ListHubsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results per page to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListHubsRequest) Reset() { + *x = ListHubsRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListHubsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHubsRequest) ProtoMessage() {} + +func (x *ListHubsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListHubsRequest.ProtoReflect.Descriptor instead. +func (*ListHubsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{7} +} + +func (x *ListHubsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListHubsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListHubsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListHubsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListHubsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [HubService.ListHubs][google.cloud.networkconnectivity.v1beta.HubService.ListHubs] +// method. +type ListHubsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested hubs. + Hubs []*Hub `protobuf:"bytes,1,rep,name=hubs,proto3" json:"hubs,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListHubsResponse) Reset() { + *x = ListHubsResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListHubsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHubsResponse) ProtoMessage() {} + +func (x *ListHubsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListHubsResponse.ProtoReflect.Descriptor instead. +func (*ListHubsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{8} +} + +func (x *ListHubsResponse) GetHubs() []*Hub { + if x != nil { + return x.Hubs + } + return nil +} + +func (x *ListHubsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListHubsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request for +// [HubService.GetHub][google.cloud.networkconnectivity.v1beta.HubService.GetHub] +// method. +type GetHubRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub resource to get. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetHubRequest) Reset() { + *x = GetHubRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetHubRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHubRequest) ProtoMessage() {} + +func (x *GetHubRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 GetHubRequest.ProtoReflect.Descriptor instead. +func (*GetHubRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{9} +} + +func (x *GetHubRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for +// [HubService.CreateHub][google.cloud.networkconnectivity.v1beta.HubService.CreateHub] +// method. +type CreateHubRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. A unique identifier for the hub. + HubId string `protobuf:"bytes,2,opt,name=hub_id,json=hubId,proto3" json:"hub_id,omitempty"` + // Required. The initial values for a new hub. + Hub *Hub `protobuf:"bytes,3,opt,name=hub,proto3" json:"hub,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateHubRequest) Reset() { + *x = CreateHubRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateHubRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateHubRequest) ProtoMessage() {} + +func (x *CreateHubRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 CreateHubRequest.ProtoReflect.Descriptor instead. +func (*CreateHubRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateHubRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateHubRequest) GetHubId() string { + if x != nil { + return x.HubId + } + return "" +} + +func (x *CreateHubRequest) GetHub() *Hub { + if x != nil { + return x.Hub + } + return nil +} + +func (x *CreateHubRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request for +// [HubService.UpdateHub][google.cloud.networkconnectivity.v1beta.HubService.UpdateHub] +// method. +type UpdateHubRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. In the case of an update to an existing hub, field mask is used + // to specify the fields to be overwritten. The fields specified in the + // update_mask are relative to the resource, not the full request. A field is + // overwritten if it is in the mask. If the user does not provide a mask, then + // all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The state that the hub should be in after the update. + Hub *Hub `protobuf:"bytes,2,opt,name=hub,proto3" json:"hub,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateHubRequest) Reset() { + *x = UpdateHubRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateHubRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateHubRequest) ProtoMessage() {} + +func (x *UpdateHubRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 UpdateHubRequest.ProtoReflect.Descriptor instead. +func (*UpdateHubRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{11} +} + +func (x *UpdateHubRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateHubRequest) GetHub() *Hub { + if x != nil { + return x.Hub + } + return nil +} + +func (x *UpdateHubRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request for +// [HubService.DeleteHub][google.cloud.networkconnectivity.v1beta.HubService.DeleteHub]. +type DeleteHubRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteHubRequest) Reset() { + *x = DeleteHubRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteHubRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteHubRequest) ProtoMessage() {} + +func (x *DeleteHubRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 DeleteHubRequest.ProtoReflect.Descriptor instead. +func (*DeleteHubRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{12} +} + +func (x *DeleteHubRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteHubRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request for +// [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1beta.HubService.ListHubSpokes]. +type ListHubSpokesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A list of locations. + // Specify one of the following: `[global]`, a single region (for + // example, `[us-central1]`), or a combination of + // values (for example, `[global, us-central1, us-west1]`). + // If the spoke_locations field is populated, the list of results + // includes only spokes in the specified location. + // If the spoke_locations field is not populated, the list of results + // includes spokes in all locations. + SpokeLocations []string `protobuf:"bytes,2,rep,name=spoke_locations,json=spokeLocations,proto3" json:"spoke_locations,omitempty"` + // The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by name or create_time. + OrderBy string `protobuf:"bytes,6,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // The view of the spoke to return. + // The view that you use determines which spoke fields are included in the + // response. + View ListHubSpokesRequest_SpokeView `protobuf:"varint,7,opt,name=view,proto3,enum=google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest_SpokeView" json:"view,omitempty"` +} + +func (x *ListHubSpokesRequest) Reset() { + *x = ListHubSpokesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListHubSpokesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHubSpokesRequest) ProtoMessage() {} + +func (x *ListHubSpokesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListHubSpokesRequest.ProtoReflect.Descriptor instead. +func (*ListHubSpokesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{13} +} + +func (x *ListHubSpokesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ListHubSpokesRequest) GetSpokeLocations() []string { + if x != nil { + return x.SpokeLocations + } + return nil +} + +func (x *ListHubSpokesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListHubSpokesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListHubSpokesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListHubSpokesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *ListHubSpokesRequest) GetView() ListHubSpokesRequest_SpokeView { + if x != nil { + return x.View + } + return ListHubSpokesRequest_SPOKE_VIEW_UNSPECIFIED +} + +// The response for +// [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1beta.HubService.ListHubSpokes]. +type ListHubSpokesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested spokes. + // The spoke fields can be partially populated based on the `view` field in + // the request message. + Spokes []*Spoke `protobuf:"bytes,1,rep,name=spokes,proto3" json:"spokes,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListHubSpokesResponse) Reset() { + *x = ListHubSpokesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListHubSpokesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListHubSpokesResponse) ProtoMessage() {} + +func (x *ListHubSpokesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListHubSpokesResponse.ProtoReflect.Descriptor instead. +func (*ListHubSpokesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{14} +} + +func (x *ListHubSpokesResponse) GetSpokes() []*Spoke { + if x != nil { + return x.Spokes + } + return nil +} + +func (x *ListHubSpokesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListHubSpokesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request for +// [HubService.QueryHubStatus][google.cloud.networkconnectivity.v1beta.HubService.QueryHubStatus]. +type QueryHubStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. An expression that filters the list of results. + // The filter can be used to filter the results by the following fields: + // - `psc_propagation_status.source_spoke` + // - `psc_propagation_status.source_group` + // - `psc_propagation_status.source_forwarding_rule` + // - `psc_propagation_status.target_spoke` + // - `psc_propagation_status.target_group` + // - `psc_propagation_status.code` + // - `psc_propagation_status.message` + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Sort the results in ascending order by the specified fields. + // A comma-separated list of any of these fields: + // - `psc_propagation_status.source_spoke` + // - `psc_propagation_status.source_group` + // - `psc_propagation_status.source_forwarding_rule` + // - `psc_propagation_status.target_spoke` + // - `psc_propagation_status.target_group` + // - `psc_propagation_status.code` + // + // If `group_by` is set, the value of the `order_by` field must be the + // same as or a subset of the `group_by` field. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Optional. Aggregate the results by the specified fields. + // A comma-separated list of any of these fields: + // - `psc_propagation_status.source_spoke` + // - `psc_propagation_status.source_group` + // - `psc_propagation_status.source_forwarding_rule` + // - `psc_propagation_status.target_spoke` + // - `psc_propagation_status.target_group` + // - `psc_propagation_status.code` + GroupBy string `protobuf:"bytes,6,opt,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"` +} + +func (x *QueryHubStatusRequest) Reset() { + *x = QueryHubStatusRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *QueryHubStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryHubStatusRequest) ProtoMessage() {} + +func (x *QueryHubStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 QueryHubStatusRequest.ProtoReflect.Descriptor instead. +func (*QueryHubStatusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{15} +} + +func (x *QueryHubStatusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *QueryHubStatusRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *QueryHubStatusRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *QueryHubStatusRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *QueryHubStatusRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +func (x *QueryHubStatusRequest) GetGroupBy() string { + if x != nil { + return x.GroupBy + } + return "" +} + +// The response for +// [HubService.QueryHubStatus][google.cloud.networkconnectivity.v1beta.HubService.QueryHubStatus]. +type QueryHubStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of hub status. + HubStatusEntries []*HubStatusEntry `protobuf:"bytes,1,rep,name=hub_status_entries,json=hubStatusEntries,proto3" json:"hub_status_entries,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *QueryHubStatusResponse) Reset() { + *x = QueryHubStatusResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *QueryHubStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueryHubStatusResponse) ProtoMessage() {} + +func (x *QueryHubStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 QueryHubStatusResponse.ProtoReflect.Descriptor instead. +func (*QueryHubStatusResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{16} +} + +func (x *QueryHubStatusResponse) GetHubStatusEntries() []*HubStatusEntry { + if x != nil { + return x.HubStatusEntries + } + return nil +} + +func (x *QueryHubStatusResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// A hub status entry represents the status of a set of propagated Private +// Service Connect connections grouped by certain fields. +type HubStatusEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of propagated Private Service Connect connections with this + // status. If the `group_by` field was not set in the request message, the + // value of this field is 1. + Count int32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + // The fields that this entry is grouped by. This has the same value as the + // `group_by` field in the request message. + GroupBy string `protobuf:"bytes,2,opt,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"` + // The Private Service Connect propagation status. + PscPropagationStatus *PscPropagationStatus `protobuf:"bytes,3,opt,name=psc_propagation_status,json=pscPropagationStatus,proto3" json:"psc_propagation_status,omitempty"` +} + +func (x *HubStatusEntry) Reset() { + *x = HubStatusEntry{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HubStatusEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HubStatusEntry) ProtoMessage() {} + +func (x *HubStatusEntry) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 HubStatusEntry.ProtoReflect.Descriptor instead. +func (*HubStatusEntry) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{17} +} + +func (x *HubStatusEntry) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *HubStatusEntry) GetGroupBy() string { + if x != nil { + return x.GroupBy + } + return "" +} + +func (x *HubStatusEntry) GetPscPropagationStatus() *PscPropagationStatus { + if x != nil { + return x.PscPropagationStatus + } + return nil +} + +// The status of one or more propagated Private Service Connect connections in a +// hub. +type PscPropagationStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the spoke that the source forwarding rule belongs to. + SourceSpoke string `protobuf:"bytes,1,opt,name=source_spoke,json=sourceSpoke,proto3" json:"source_spoke,omitempty"` + // The name of the group that the source spoke belongs to. + SourceGroup string `protobuf:"bytes,2,opt,name=source_group,json=sourceGroup,proto3" json:"source_group,omitempty"` + // The name of the forwarding rule exported to the hub. + SourceForwardingRule string `protobuf:"bytes,3,opt,name=source_forwarding_rule,json=sourceForwardingRule,proto3" json:"source_forwarding_rule,omitempty"` + // The name of the spoke that the source forwarding rule propagates to. + TargetSpoke string `protobuf:"bytes,4,opt,name=target_spoke,json=targetSpoke,proto3" json:"target_spoke,omitempty"` + // The name of the group that the target spoke belongs to. + TargetGroup string `protobuf:"bytes,5,opt,name=target_group,json=targetGroup,proto3" json:"target_group,omitempty"` + // The propagation status. + Code PscPropagationStatus_Code `protobuf:"varint,6,opt,name=code,proto3,enum=google.cloud.networkconnectivity.v1beta.PscPropagationStatus_Code" json:"code,omitempty"` + // The human-readable summary of the Private Service Connect connection + // propagation status. + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *PscPropagationStatus) Reset() { + *x = PscPropagationStatus{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PscPropagationStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PscPropagationStatus) ProtoMessage() {} + +func (x *PscPropagationStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 PscPropagationStatus.ProtoReflect.Descriptor instead. +func (*PscPropagationStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{18} +} + +func (x *PscPropagationStatus) GetSourceSpoke() string { + if x != nil { + return x.SourceSpoke + } + return "" +} + +func (x *PscPropagationStatus) GetSourceGroup() string { + if x != nil { + return x.SourceGroup + } + return "" +} + +func (x *PscPropagationStatus) GetSourceForwardingRule() string { + if x != nil { + return x.SourceForwardingRule + } + return "" +} + +func (x *PscPropagationStatus) GetTargetSpoke() string { + if x != nil { + return x.TargetSpoke + } + return "" +} + +func (x *PscPropagationStatus) GetTargetGroup() string { + if x != nil { + return x.TargetGroup + } + return "" +} + +func (x *PscPropagationStatus) GetCode() PscPropagationStatus_Code { + if x != nil { + return x.Code + } + return PscPropagationStatus_CODE_UNSPECIFIED +} + +func (x *PscPropagationStatus) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +// The request for +// [HubService.ListSpokes][google.cloud.networkconnectivity.v1beta.HubService.ListSpokes]. +type ListSpokesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListSpokesRequest) Reset() { + *x = ListSpokesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSpokesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSpokesRequest) ProtoMessage() {} + +func (x *ListSpokesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListSpokesRequest.ProtoReflect.Descriptor instead. +func (*ListSpokesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{19} +} + +func (x *ListSpokesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSpokesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSpokesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSpokesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListSpokesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// The response for +// [HubService.ListSpokes][google.cloud.networkconnectivity.v1beta.HubService.ListSpokes]. +type ListSpokesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested spokes. + Spokes []*Spoke `protobuf:"bytes,1,rep,name=spokes,proto3" json:"spokes,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListSpokesResponse) Reset() { + *x = ListSpokesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListSpokesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSpokesResponse) ProtoMessage() {} + +func (x *ListSpokesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListSpokesResponse.ProtoReflect.Descriptor instead. +func (*ListSpokesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{20} +} + +func (x *ListSpokesResponse) GetSpokes() []*Spoke { + if x != nil { + return x.Spokes + } + return nil +} + +func (x *ListSpokesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListSpokesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request for +// [HubService.GetSpoke][google.cloud.networkconnectivity.v1beta.HubService.GetSpoke]. +type GetSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the spoke resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSpokeRequest) Reset() { + *x = GetSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSpokeRequest) ProtoMessage() {} + +func (x *GetSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 GetSpokeRequest.ProtoReflect.Descriptor instead. +func (*GetSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{21} +} + +func (x *GetSpokeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [HubService.CreateSpoke][google.cloud.networkconnectivity.v1beta.HubService.CreateSpoke]. +type CreateSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Unique id for the spoke to create. + SpokeId string `protobuf:"bytes,2,opt,name=spoke_id,json=spokeId,proto3" json:"spoke_id,omitempty"` + // Required. The initial values for a new spoke. + Spoke *Spoke `protobuf:"bytes,3,opt,name=spoke,proto3" json:"spoke,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateSpokeRequest) Reset() { + *x = CreateSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSpokeRequest) ProtoMessage() {} + +func (x *CreateSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 CreateSpokeRequest.ProtoReflect.Descriptor instead. +func (*CreateSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{22} +} + +func (x *CreateSpokeRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSpokeRequest) GetSpokeId() string { + if x != nil { + return x.SpokeId + } + return "" +} + +func (x *CreateSpokeRequest) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +func (x *CreateSpokeRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request for +// [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1beta.HubService.UpdateSpoke] +// method. +type UpdateSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. In the case of an update to an existing spoke, field mask is used + // to specify the fields to be overwritten. The fields specified in the + // update_mask are relative to the resource, not the full request. A field is + // overwritten if it is in the mask. If the user does not provide a mask, then + // all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The state that the spoke should be in after the update. + Spoke *Spoke `protobuf:"bytes,2,opt,name=spoke,proto3" json:"spoke,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateSpokeRequest) Reset() { + *x = UpdateSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSpokeRequest) ProtoMessage() {} + +func (x *UpdateSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 UpdateSpokeRequest.ProtoReflect.Descriptor instead. +func (*UpdateSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{23} +} + +func (x *UpdateSpokeRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateSpokeRequest) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +func (x *UpdateSpokeRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request for +// [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1beta.HubService.DeleteSpoke]. +type DeleteSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the spoke to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteSpokeRequest) Reset() { + *x = DeleteSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSpokeRequest) ProtoMessage() {} + +func (x *DeleteSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 DeleteSpokeRequest.ProtoReflect.Descriptor instead. +func (*DeleteSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{24} +} + +func (x *DeleteSpokeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteSpokeRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request for +// [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1beta.HubService.AcceptHubSpoke]. +type AcceptHubSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub into which to accept the spoke. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The URI of the spoke to accept into the hub. + SpokeUri string `protobuf:"bytes,2,opt,name=spoke_uri,json=spokeUri,proto3" json:"spoke_uri,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *AcceptHubSpokeRequest) Reset() { + *x = AcceptHubSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcceptHubSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptHubSpokeRequest) ProtoMessage() {} + +func (x *AcceptHubSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 AcceptHubSpokeRequest.ProtoReflect.Descriptor instead. +func (*AcceptHubSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{25} +} + +func (x *AcceptHubSpokeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AcceptHubSpokeRequest) GetSpokeUri() string { + if x != nil { + return x.SpokeUri + } + return "" +} + +func (x *AcceptHubSpokeRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The response for +// [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1beta.HubService.AcceptHubSpoke]. +type AcceptHubSpokeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spoke that was operated on. + Spoke *Spoke `protobuf:"bytes,1,opt,name=spoke,proto3" json:"spoke,omitempty"` +} + +func (x *AcceptHubSpokeResponse) Reset() { + *x = AcceptHubSpokeResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcceptHubSpokeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptHubSpokeResponse) ProtoMessage() {} + +func (x *AcceptHubSpokeResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 AcceptHubSpokeResponse.ProtoReflect.Descriptor instead. +func (*AcceptHubSpokeResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{26} +} + +func (x *AcceptHubSpokeResponse) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +// The request for +// [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1beta.HubService.RejectHubSpoke]. +type RejectHubSpokeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub from which to reject the spoke. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The URI of the spoke to reject from the hub. + SpokeUri string `protobuf:"bytes,2,opt,name=spoke_uri,json=spokeUri,proto3" json:"spoke_uri,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. Additional information provided by the hub administrator. + Details string `protobuf:"bytes,4,opt,name=details,proto3" json:"details,omitempty"` +} + +func (x *RejectHubSpokeRequest) Reset() { + *x = RejectHubSpokeRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RejectHubSpokeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RejectHubSpokeRequest) ProtoMessage() {} + +func (x *RejectHubSpokeRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RejectHubSpokeRequest.ProtoReflect.Descriptor instead. +func (*RejectHubSpokeRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{27} +} + +func (x *RejectHubSpokeRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RejectHubSpokeRequest) GetSpokeUri() string { + if x != nil { + return x.SpokeUri + } + return "" +} + +func (x *RejectHubSpokeRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *RejectHubSpokeRequest) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +// The response for +// [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1beta.HubService.RejectHubSpoke]. +type RejectHubSpokeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spoke that was operated on. + Spoke *Spoke `protobuf:"bytes,1,opt,name=spoke,proto3" json:"spoke,omitempty"` +} + +func (x *RejectHubSpokeResponse) Reset() { + *x = RejectHubSpokeResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RejectHubSpokeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RejectHubSpokeResponse) ProtoMessage() {} + +func (x *RejectHubSpokeResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RejectHubSpokeResponse.ProtoReflect.Descriptor instead. +func (*RejectHubSpokeResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{28} +} + +func (x *RejectHubSpokeResponse) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +// The request for +// [HubService.AcceptSpokeUpdate][google.cloud.networkconnectivity.v1beta.HubService.AcceptSpokeUpdate]. +type AcceptSpokeUpdateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub to accept spoke update. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The URI of the spoke to accept update. + SpokeUri string `protobuf:"bytes,2,opt,name=spoke_uri,json=spokeUri,proto3" json:"spoke_uri,omitempty"` + // Required. The etag of the spoke to accept update. + SpokeEtag string `protobuf:"bytes,3,opt,name=spoke_etag,json=spokeEtag,proto3" json:"spoke_etag,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *AcceptSpokeUpdateRequest) Reset() { + *x = AcceptSpokeUpdateRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcceptSpokeUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptSpokeUpdateRequest) ProtoMessage() {} + +func (x *AcceptSpokeUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 AcceptSpokeUpdateRequest.ProtoReflect.Descriptor instead. +func (*AcceptSpokeUpdateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{29} +} + +func (x *AcceptSpokeUpdateRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AcceptSpokeUpdateRequest) GetSpokeUri() string { + if x != nil { + return x.SpokeUri + } + return "" +} + +func (x *AcceptSpokeUpdateRequest) GetSpokeEtag() string { + if x != nil { + return x.SpokeEtag + } + return "" +} + +func (x *AcceptSpokeUpdateRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The response for +// [HubService.AcceptSpokeUpdate][google.cloud.networkconnectivity.v1beta.HubService.AcceptSpokeUpdate]. +type AcceptSpokeUpdateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spoke that was operated on. + Spoke *Spoke `protobuf:"bytes,1,opt,name=spoke,proto3" json:"spoke,omitempty"` +} + +func (x *AcceptSpokeUpdateResponse) Reset() { + *x = AcceptSpokeUpdateResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcceptSpokeUpdateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcceptSpokeUpdateResponse) ProtoMessage() {} + +func (x *AcceptSpokeUpdateResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 AcceptSpokeUpdateResponse.ProtoReflect.Descriptor instead. +func (*AcceptSpokeUpdateResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{30} +} + +func (x *AcceptSpokeUpdateResponse) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +// The request for +// [HubService.RejectSpokeUpdate][google.cloud.networkconnectivity.v1beta.HubService.RejectSpokeUpdate]. +type RejectSpokeUpdateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the hub to reject spoke update. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The URI of the spoke to reject update. + SpokeUri string `protobuf:"bytes,2,opt,name=spoke_uri,json=spokeUri,proto3" json:"spoke_uri,omitempty"` + // Required. The etag of the spoke to reject update. + SpokeEtag string `protobuf:"bytes,3,opt,name=spoke_etag,json=spokeEtag,proto3" json:"spoke_etag,omitempty"` + // Optional. Additional information provided by the hub administrator. + Details string `protobuf:"bytes,4,opt,name=details,proto3" json:"details,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly 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,5,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *RejectSpokeUpdateRequest) Reset() { + *x = RejectSpokeUpdateRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RejectSpokeUpdateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RejectSpokeUpdateRequest) ProtoMessage() {} + +func (x *RejectSpokeUpdateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RejectSpokeUpdateRequest.ProtoReflect.Descriptor instead. +func (*RejectSpokeUpdateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{31} +} + +func (x *RejectSpokeUpdateRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RejectSpokeUpdateRequest) GetSpokeUri() string { + if x != nil { + return x.SpokeUri + } + return "" +} + +func (x *RejectSpokeUpdateRequest) GetSpokeEtag() string { + if x != nil { + return x.SpokeEtag + } + return "" +} + +func (x *RejectSpokeUpdateRequest) GetDetails() string { + if x != nil { + return x.Details + } + return "" +} + +func (x *RejectSpokeUpdateRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The response for +// [HubService.RejectSpokeUpdate][google.cloud.networkconnectivity.v1beta.HubService.RejectSpokeUpdate]. +type RejectSpokeUpdateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The spoke that was operated on. + Spoke *Spoke `protobuf:"bytes,1,opt,name=spoke,proto3" json:"spoke,omitempty"` +} + +func (x *RejectSpokeUpdateResponse) Reset() { + *x = RejectSpokeUpdateResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RejectSpokeUpdateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RejectSpokeUpdateResponse) ProtoMessage() {} + +func (x *RejectSpokeUpdateResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 RejectSpokeUpdateResponse.ProtoReflect.Descriptor instead. +func (*RejectSpokeUpdateResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{32} +} + +func (x *RejectSpokeUpdateResponse) GetSpoke() *Spoke { + if x != nil { + return x.Spoke + } + return nil +} + +// The request for +// [HubService.GetRouteTable][google.cloud.networkconnectivity.v1beta.HubService.GetRouteTable]. +type GetRouteTableRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the route table resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRouteTableRequest) Reset() { + *x = GetRouteTableRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRouteTableRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRouteTableRequest) ProtoMessage() {} + +func (x *GetRouteTableRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 GetRouteTableRequest.ProtoReflect.Descriptor instead. +func (*GetRouteTableRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{33} +} + +func (x *GetRouteTableRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [HubService.GetRoute][google.cloud.networkconnectivity.v1beta.HubService.GetRoute]. +type GetRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the route resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRouteRequest) Reset() { + *x = GetRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRouteRequest) ProtoMessage() {} + +func (x *GetRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 GetRouteRequest.ProtoReflect.Descriptor instead. +func (*GetRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{34} +} + +func (x *GetRouteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for +// [HubService.ListRoutes][google.cloud.networkconnectivity.v1beta.HubService.ListRoutes] +// method. +type ListRoutesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRoutesRequest) Reset() { + *x = ListRoutesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoutesRequest) ProtoMessage() {} + +func (x *ListRoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_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 ListRoutesRequest.ProtoReflect.Descriptor instead. +func (*ListRoutesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{35} +} + +func (x *ListRoutesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRoutesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRoutesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRoutesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRoutesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [HubService.ListRoutes][google.cloud.networkconnectivity.v1beta.HubService.ListRoutes] +// method. +type ListRoutesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested routes. + Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // RouteTables that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRoutesResponse) Reset() { + *x = ListRoutesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRoutesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRoutesResponse) ProtoMessage() {} + +func (x *ListRoutesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRoutesResponse.ProtoReflect.Descriptor instead. +func (*ListRoutesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{36} +} + +func (x *ListRoutesResponse) GetRoutes() []*Route { + if x != nil { + return x.Routes + } + return nil +} + +func (x *ListRoutesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRoutesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request for +// [HubService.ListRouteTables][google.cloud.networkconnectivity.v1beta.HubService.ListRouteTables] +// method. +type ListRouteTablesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRouteTablesRequest) Reset() { + *x = ListRouteTablesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRouteTablesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRouteTablesRequest) ProtoMessage() {} + +func (x *ListRouteTablesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRouteTablesRequest.ProtoReflect.Descriptor instead. +func (*ListRouteTablesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{37} +} + +func (x *ListRouteTablesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRouteTablesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRouteTablesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRouteTablesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRouteTablesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [HubService.ListRouteTables][google.cloud.networkconnectivity.v1beta.HubService.ListRouteTables] +// method. +type ListRouteTablesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested route tables. + RouteTables []*RouteTable `protobuf:"bytes,1,rep,name=route_tables,json=routeTables,proto3" json:"route_tables,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Hubs that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRouteTablesResponse) Reset() { + *x = ListRouteTablesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRouteTablesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRouteTablesResponse) ProtoMessage() {} + +func (x *ListRouteTablesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRouteTablesResponse.ProtoReflect.Descriptor instead. +func (*ListRouteTablesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{38} +} + +func (x *ListRouteTablesResponse) GetRouteTables() []*RouteTable { + if x != nil { + return x.RouteTables + } + return nil +} + +func (x *ListRouteTablesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRouteTablesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request for +// [HubService.ListGroups][google.cloud.networkconnectivity.v1beta.HubService.ListGroups] +// method. +type ListGroupsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results to return per page. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListGroupsRequest) Reset() { + *x = ListGroupsRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGroupsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGroupsRequest) ProtoMessage() {} + +func (x *ListGroupsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[39] + 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 ListGroupsRequest.ProtoReflect.Descriptor instead. +func (*ListGroupsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{39} +} + +func (x *ListGroupsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListGroupsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListGroupsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListGroupsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListGroupsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [HubService.ListGroups][google.cloud.networkconnectivity.v1beta.HubService.ListGroups] +// method. +type ListGroupsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested groups. + Groups []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Hubs that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListGroupsResponse) Reset() { + *x = ListGroupsResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGroupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGroupsResponse) ProtoMessage() {} + +func (x *ListGroupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[40] + 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 ListGroupsResponse.ProtoReflect.Descriptor instead. +func (*ListGroupsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{40} +} + +func (x *ListGroupsResponse) GetGroups() []*Group { + if x != nil { + return x.Groups + } + return nil +} + +func (x *ListGroupsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListGroupsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// A collection of Cloud VPN tunnel resources. These resources should be +// redundant HA VPN tunnels that all advertise the same prefixes to Google +// Cloud. Alternatively, in a passive/active configuration, all tunnels +// should be capable of advertising the same prefixes. +type LinkedVpnTunnels struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URIs of linked VPN tunnel resources. + Uris []string `protobuf:"bytes,1,rep,name=uris,proto3" json:"uris,omitempty"` + // A value that controls whether site-to-site data transfer is enabled for + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,2,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` + // Output only. The VPC network where these VPN tunnels are located. + VpcNetwork string `protobuf:"bytes,3,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Optional. Hub routes fully encompassed by include import ranges are + // included during import from hub. + IncludeImportRanges []string `protobuf:"bytes,5,rep,name=include_import_ranges,json=includeImportRanges,proto3" json:"include_import_ranges,omitempty"` +} + +func (x *LinkedVpnTunnels) Reset() { + *x = LinkedVpnTunnels{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LinkedVpnTunnels) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedVpnTunnels) ProtoMessage() {} + +func (x *LinkedVpnTunnels) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[41] + 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 LinkedVpnTunnels.ProtoReflect.Descriptor instead. +func (*LinkedVpnTunnels) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{41} +} + +func (x *LinkedVpnTunnels) GetUris() []string { + if x != nil { + return x.Uris + } + return nil +} + +func (x *LinkedVpnTunnels) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +func (x *LinkedVpnTunnels) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *LinkedVpnTunnels) GetIncludeImportRanges() []string { + if x != nil { + return x.IncludeImportRanges + } + return nil +} + +// A collection of VLAN attachment resources. These resources should +// be redundant attachments that all advertise the same prefixes to Google +// Cloud. Alternatively, in active/passive configurations, all attachments +// should be capable of advertising the same prefixes. +type LinkedInterconnectAttachments struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URIs of linked interconnect attachment resources + Uris []string `protobuf:"bytes,1,rep,name=uris,proto3" json:"uris,omitempty"` + // A value that controls whether site-to-site data transfer is enabled for + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,2,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` + // Output only. The VPC network where these VLAN attachments are located. + VpcNetwork string `protobuf:"bytes,3,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Optional. Hub routes fully encompassed by include import ranges are + // included during import from hub. + IncludeImportRanges []string `protobuf:"bytes,5,rep,name=include_import_ranges,json=includeImportRanges,proto3" json:"include_import_ranges,omitempty"` +} + +func (x *LinkedInterconnectAttachments) Reset() { + *x = LinkedInterconnectAttachments{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LinkedInterconnectAttachments) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedInterconnectAttachments) ProtoMessage() {} + +func (x *LinkedInterconnectAttachments) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[42] + 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 LinkedInterconnectAttachments.ProtoReflect.Descriptor instead. +func (*LinkedInterconnectAttachments) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{42} +} + +func (x *LinkedInterconnectAttachments) GetUris() []string { + if x != nil { + return x.Uris + } + return nil +} + +func (x *LinkedInterconnectAttachments) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +func (x *LinkedInterconnectAttachments) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *LinkedInterconnectAttachments) GetIncludeImportRanges() []string { + if x != nil { + return x.IncludeImportRanges + } + return nil +} + +// A collection of router appliance instances. If you configure multiple router +// appliance instances to receive data from the same set of sites outside of +// Google Cloud, we recommend that you associate those instances with the same +// spoke. +type LinkedRouterApplianceInstances struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of router appliance instances. + Instances []*RouterApplianceInstance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"` + // A value that controls whether site-to-site data transfer is enabled for + // these resources. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,2,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` + // Output only. The VPC network where these router appliance instances are + // located. + VpcNetwork string `protobuf:"bytes,3,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Optional. Hub routes fully encompassed by include import ranges are + // included during import from hub. + IncludeImportRanges []string `protobuf:"bytes,5,rep,name=include_import_ranges,json=includeImportRanges,proto3" json:"include_import_ranges,omitempty"` +} + +func (x *LinkedRouterApplianceInstances) Reset() { + *x = LinkedRouterApplianceInstances{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LinkedRouterApplianceInstances) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedRouterApplianceInstances) ProtoMessage() {} + +func (x *LinkedRouterApplianceInstances) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[43] + 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 LinkedRouterApplianceInstances.ProtoReflect.Descriptor instead. +func (*LinkedRouterApplianceInstances) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{43} +} + +func (x *LinkedRouterApplianceInstances) GetInstances() []*RouterApplianceInstance { + if x != nil { + return x.Instances + } + return nil +} + +func (x *LinkedRouterApplianceInstances) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +func (x *LinkedRouterApplianceInstances) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *LinkedRouterApplianceInstances) GetIncludeImportRanges() []string { + if x != nil { + return x.IncludeImportRanges + } + return nil +} + +// An existing VPC network. +type LinkedVpcNetwork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The URI of the VPC network resource. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Optional. IP ranges encompassing the subnets to be excluded from peering. + ExcludeExportRanges []string `protobuf:"bytes,2,rep,name=exclude_export_ranges,json=excludeExportRanges,proto3" json:"exclude_export_ranges,omitempty"` + // Optional. IP ranges allowed to be included from peering. + IncludeExportRanges []string `protobuf:"bytes,3,rep,name=include_export_ranges,json=includeExportRanges,proto3" json:"include_export_ranges,omitempty"` + // Output only. The proposed include export IP ranges waiting for hub + // administrator's approval. + ProposedIncludeExportRanges []string `protobuf:"bytes,5,rep,name=proposed_include_export_ranges,json=proposedIncludeExportRanges,proto3" json:"proposed_include_export_ranges,omitempty"` + // Output only. The proposed exclude export IP ranges waiting for hub + // administrator's approval. + ProposedExcludeExportRanges []string `protobuf:"bytes,6,rep,name=proposed_exclude_export_ranges,json=proposedExcludeExportRanges,proto3" json:"proposed_exclude_export_ranges,omitempty"` + // Output only. The list of Producer VPC spokes that this VPC spoke is a + // service consumer VPC spoke for. These producer VPCs are connected through + // VPC peering to this spoke's backing VPC network. Because they are directly + // connected through VPC peering, NCC export filters do not apply between the + // service consumer VPC spoke and any of its producer VPC spokes. This VPC + // spoke cannot be deleted as long as any of these producer VPC spokes are + // connected to the NCC Hub. + ProducerVpcSpokes []string `protobuf:"bytes,4,rep,name=producer_vpc_spokes,json=producerVpcSpokes,proto3" json:"producer_vpc_spokes,omitempty"` +} + +func (x *LinkedVpcNetwork) Reset() { + *x = LinkedVpcNetwork{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LinkedVpcNetwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedVpcNetwork) ProtoMessage() {} + +func (x *LinkedVpcNetwork) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[44] + 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 LinkedVpcNetwork.ProtoReflect.Descriptor instead. +func (*LinkedVpcNetwork) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{44} +} + +func (x *LinkedVpcNetwork) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *LinkedVpcNetwork) GetExcludeExportRanges() []string { + if x != nil { + return x.ExcludeExportRanges + } + return nil +} + +func (x *LinkedVpcNetwork) GetIncludeExportRanges() []string { + if x != nil { + return x.IncludeExportRanges + } + return nil +} + +func (x *LinkedVpcNetwork) GetProposedIncludeExportRanges() []string { + if x != nil { + return x.ProposedIncludeExportRanges + } + return nil +} + +func (x *LinkedVpcNetwork) GetProposedExcludeExportRanges() []string { + if x != nil { + return x.ProposedExcludeExportRanges + } + return nil +} + +func (x *LinkedVpcNetwork) GetProducerVpcSpokes() []string { + if x != nil { + return x.ProducerVpcSpokes + } + return nil +} + +// A gateway that can apply specialized traffic processing. +type Gateway struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. A list of IP ranges that are reserved for this gateway's internal + // intfrastructure. + IpRangeReservations []*Gateway_IpRangeReservation `protobuf:"bytes,7,rep,name=ip_range_reservations,json=ipRangeReservations,proto3" json:"ip_range_reservations,omitempty"` + // Optional. The aggregate processing capacity of this gateway. + Capacity Gateway_GatewayCapacity `protobuf:"varint,10,opt,name=capacity,proto3,enum=google.cloud.networkconnectivity.v1beta.Gateway_GatewayCapacity" json:"capacity,omitempty"` + // Output only. The list of Cloud Routers that are connected to this gateway. + // Should be in the form: + // https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/routers/{router} + CloudRouters []string `protobuf:"bytes,13,rep,name=cloud_routers,json=cloudRouters,proto3" json:"cloud_routers,omitempty"` + // Output only. The URI of the connected SACAttachment. + // Should be in the form: + // projects/{project}/locations/{location}/sacAttachments/{sac_attachment} + SacAttachment string `protobuf:"bytes,14,opt,name=sac_attachment,json=sacAttachment,proto3" json:"sac_attachment,omitempty"` +} + +func (x *Gateway) Reset() { + *x = Gateway{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Gateway) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Gateway) ProtoMessage() {} + +func (x *Gateway) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[45] + 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 Gateway.ProtoReflect.Descriptor instead. +func (*Gateway) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{45} +} + +func (x *Gateway) GetIpRangeReservations() []*Gateway_IpRangeReservation { + if x != nil { + return x.IpRangeReservations + } + return nil +} + +func (x *Gateway) GetCapacity() Gateway_GatewayCapacity { + if x != nil { + return x.Capacity + } + return Gateway_GATEWAY_CAPACITY_UNSPECIFIED +} + +func (x *Gateway) GetCloudRouters() []string { + if x != nil { + return x.CloudRouters + } + return nil +} + +func (x *Gateway) GetSacAttachment() string { + if x != nil { + return x.SacAttachment + } + return "" +} + +// A gateway advertised route is a route that a gateway spoke advertises +// somewhere. +type GatewayAdvertisedRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. The name of the gateway advertised route. Route names must be + // unique and use the following form: + // + // `projects/{project_number}/locations/{region}/spokes/{spoke}/gatewayAdvertisedRoutes/{gateway_advertised_route_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The time the gateway advertised route was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the gateway advertised route was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional labels in key-value pair format. For more information about + // labels, see [Requirements for + // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // An optional description of the gateway advertised route. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Google-generated UUID for the gateway advertised route. + // This value is unique across all gateway advertised route resources. If a + // gateway advertised route is deleted and another with the same name is + // created, the new route is assigned a different `unique_id`. + UniqueId string `protobuf:"bytes,6,opt,name=unique_id,json=uniqueId,proto3" json:"unique_id,omitempty"` + // Output only. The current lifecycle state of this gateway advertised route. + State State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Immutable. This route's advertised IP address range. Must be a valid + // CIDR-formatted prefix. If an IP address is provided without a subnet mask, + // it is interpreted as, for IPv4, a `/32` singular IP address range, and, for + // IPv6, + // `/128`. + IpRange string `protobuf:"bytes,8,opt,name=ip_range,json=ipRange,proto3" json:"ip_range,omitempty"` + // Optional. The priority of this advertised route. You can choose a value + // from `0` to `65335`. If you don't provide a value, Google Cloud assigns a + // priority of `100` to the ranges. + Priority *int32 `protobuf:"varint,9,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + // Optional. The recipient of this advertised route. + Recipient GatewayAdvertisedRoute_Recipient `protobuf:"varint,10,opt,name=recipient,proto3,enum=google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute_Recipient" json:"recipient,omitempty"` +} + +func (x *GatewayAdvertisedRoute) Reset() { + *x = GatewayAdvertisedRoute{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GatewayAdvertisedRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GatewayAdvertisedRoute) ProtoMessage() {} + +func (x *GatewayAdvertisedRoute) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[46] + 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 GatewayAdvertisedRoute.ProtoReflect.Descriptor instead. +func (*GatewayAdvertisedRoute) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{46} +} + +func (x *GatewayAdvertisedRoute) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GatewayAdvertisedRoute) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *GatewayAdvertisedRoute) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *GatewayAdvertisedRoute) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *GatewayAdvertisedRoute) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *GatewayAdvertisedRoute) GetUniqueId() string { + if x != nil { + return x.UniqueId + } + return "" +} + +func (x *GatewayAdvertisedRoute) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *GatewayAdvertisedRoute) GetIpRange() string { + if x != nil { + return x.IpRange + } + return "" +} + +func (x *GatewayAdvertisedRoute) GetPriority() int32 { + if x != nil && x.Priority != nil { + return *x.Priority + } + return 0 +} + +func (x *GatewayAdvertisedRoute) GetRecipient() GatewayAdvertisedRoute_Recipient { + if x != nil { + return x.Recipient + } + return GatewayAdvertisedRoute_RECIPIENT_UNSPECIFIED +} + +// The request for +// [HubService.CreateGatewayAdvertisedRoute][google.cloud.networkconnectivity.v1beta.HubService.CreateGatewayAdvertisedRoute]. +type CreateGatewayAdvertisedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Unique id for the route to create. + GatewayAdvertisedRouteId string `protobuf:"bytes,2,opt,name=gateway_advertised_route_id,json=gatewayAdvertisedRouteId,proto3" json:"gateway_advertised_route_id,omitempty"` + // Required. Initial values for the new gateway advertised route. + GatewayAdvertisedRoute *GatewayAdvertisedRoute `protobuf:"bytes,3,opt,name=gateway_advertised_route,json=gatewayAdvertisedRoute,proto3" json:"gateway_advertised_route,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateGatewayAdvertisedRouteRequest) Reset() { + *x = CreateGatewayAdvertisedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateGatewayAdvertisedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateGatewayAdvertisedRouteRequest) ProtoMessage() {} + +func (x *CreateGatewayAdvertisedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[47] + 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 CreateGatewayAdvertisedRouteRequest.ProtoReflect.Descriptor instead. +func (*CreateGatewayAdvertisedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{47} +} + +func (x *CreateGatewayAdvertisedRouteRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateGatewayAdvertisedRouteRequest) GetGatewayAdvertisedRouteId() string { + if x != nil { + return x.GatewayAdvertisedRouteId + } + return "" +} + +func (x *CreateGatewayAdvertisedRouteRequest) GetGatewayAdvertisedRoute() *GatewayAdvertisedRoute { + if x != nil { + return x.GatewayAdvertisedRoute + } + return nil +} + +func (x *CreateGatewayAdvertisedRouteRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The request for +// [HubService.GetGatewayAdvertisedRoute][google.cloud.networkconnectivity.v1beta.HubService.GetGatewayAdvertisedRoute]. +type GetGatewayAdvertisedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the gateway advertised route to get. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetGatewayAdvertisedRouteRequest) Reset() { + *x = GetGatewayAdvertisedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetGatewayAdvertisedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGatewayAdvertisedRouteRequest) ProtoMessage() {} + +func (x *GetGatewayAdvertisedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[48] + 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 GetGatewayAdvertisedRouteRequest.ProtoReflect.Descriptor instead. +func (*GetGatewayAdvertisedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{48} +} + +func (x *GetGatewayAdvertisedRouteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request for +// [HubService.ListGatewayAdvertisedRoutes][google.cloud.networkconnectivity.v1beta.HubService.ListGatewayAdvertisedRoutes]. +type ListGatewayAdvertisedRoutesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of results per page that should be returned. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token, received from a previous + // `ListGatewayAdvertisedRoutes` call. Provide this to retrieve the subsequent + // page. + // + // When paginating, all other parameters provided to + // `ListGatewayAdvertisedRoutes` must match the call that provided the page + // token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // An expression that filters the list of results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListGatewayAdvertisedRoutesRequest) Reset() { + *x = ListGatewayAdvertisedRoutesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGatewayAdvertisedRoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGatewayAdvertisedRoutesRequest) ProtoMessage() {} + +func (x *ListGatewayAdvertisedRoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[49] + 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 ListGatewayAdvertisedRoutesRequest.ProtoReflect.Descriptor instead. +func (*ListGatewayAdvertisedRoutesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{49} +} + +func (x *ListGatewayAdvertisedRoutesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListGatewayAdvertisedRoutesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListGatewayAdvertisedRoutesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListGatewayAdvertisedRoutesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListGatewayAdvertisedRoutesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [HubService.ListGatewayAdvertisedRoutes][google.cloud.networkconnectivity.v1beta.HubService.ListGatewayAdvertisedRoutes] +// method. +type ListGatewayAdvertisedRoutesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The requested gateway advertised routes. + GatewayAdvertisedRoutes []*GatewayAdvertisedRoute `protobuf:"bytes,1,rep,name=gateway_advertised_routes,json=gatewayAdvertisedRoutes,proto3" json:"gateway_advertised_routes,omitempty"` + // The token for the next page of the response. To see more results, + // use this value as the page_token for your next request. If this value + // is empty, there are no more results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Hubs that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListGatewayAdvertisedRoutesResponse) Reset() { + *x = ListGatewayAdvertisedRoutesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGatewayAdvertisedRoutesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGatewayAdvertisedRoutesResponse) ProtoMessage() {} + +func (x *ListGatewayAdvertisedRoutesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[50] + 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 ListGatewayAdvertisedRoutesResponse.ProtoReflect.Descriptor instead. +func (*ListGatewayAdvertisedRoutesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{50} +} + +func (x *ListGatewayAdvertisedRoutesResponse) GetGatewayAdvertisedRoutes() []*GatewayAdvertisedRoute { + if x != nil { + return x.GatewayAdvertisedRoutes + } + return nil +} + +func (x *ListGatewayAdvertisedRoutesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListGatewayAdvertisedRoutesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// The request for +// [HubService.UpdateGatewayAdvertisedRoute][google.cloud.networkconnectivity.v1beta.HubService.UpdateGatewayAdvertisedRoute]. +type UpdateGatewayAdvertisedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. In the case of an update to an existing group, field mask is used + // to specify the fields to be overwritten. The fields specified in the + // update_mask are relative to the resource, not the full request. A field is + // overwritten if it is in the mask. If the user does not provide a mask, then + // all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The gateway advertised route to update. + // + // The gateway advertised route's `name` field is used to identify the gateway + // advertised route to update. Format: + // `projects/{project}/locations/{location}/spokes/{spoke}/gatewayAdvertisedRoutes/{gatewayAdvertisedRoute}` + GatewayAdvertisedRoute *GatewayAdvertisedRoute `protobuf:"bytes,2,opt,name=gateway_advertised_route,json=gatewayAdvertisedRoute,proto3" json:"gateway_advertised_route,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateGatewayAdvertisedRouteRequest) Reset() { + *x = UpdateGatewayAdvertisedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateGatewayAdvertisedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGatewayAdvertisedRouteRequest) ProtoMessage() {} + +func (x *UpdateGatewayAdvertisedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[51] + 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 UpdateGatewayAdvertisedRouteRequest.ProtoReflect.Descriptor instead. +func (*UpdateGatewayAdvertisedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{51} +} + +func (x *UpdateGatewayAdvertisedRouteRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateGatewayAdvertisedRouteRequest) GetGatewayAdvertisedRoute() *GatewayAdvertisedRoute { + if x != nil { + return x.GatewayAdvertisedRoute + } + return nil +} + +func (x *UpdateGatewayAdvertisedRouteRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request for +// [HubService.DeleteGatewayAdvertisedRoute][google.cloud.networkconnectivity.v1beta.HubService.DeleteGatewayAdvertisedRoute] +// method. +type DeleteGatewayAdvertisedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the gateway advertised route to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteGatewayAdvertisedRouteRequest) Reset() { + *x = DeleteGatewayAdvertisedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteGatewayAdvertisedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGatewayAdvertisedRouteRequest) ProtoMessage() {} + +func (x *DeleteGatewayAdvertisedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[52] + 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 DeleteGatewayAdvertisedRouteRequest.ProtoReflect.Descriptor instead. +func (*DeleteGatewayAdvertisedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{52} +} + +func (x *DeleteGatewayAdvertisedRouteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteGatewayAdvertisedRouteRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +type LinkedProducerVpcNetwork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The URI of the Service Consumer VPC that the Producer VPC is + // peered with. + Network string `protobuf:"bytes,1,opt,name=network,proto3" json:"network,omitempty"` + // Output only. The Service Consumer Network spoke. + ServiceConsumerVpcSpoke string `protobuf:"bytes,6,opt,name=service_consumer_vpc_spoke,json=serviceConsumerVpcSpoke,proto3" json:"service_consumer_vpc_spoke,omitempty"` + // Immutable. The name of the VPC peering between the Service Consumer VPC and + // the Producer VPC (defined in the Tenant project) which is added to the NCC + // hub. This peering must be in ACTIVE state. + Peering string `protobuf:"bytes,2,opt,name=peering,proto3" json:"peering,omitempty"` + // Output only. The URI of the Producer VPC. + ProducerNetwork string `protobuf:"bytes,5,opt,name=producer_network,json=producerNetwork,proto3" json:"producer_network,omitempty"` + // Optional. IP ranges encompassing the subnets to be excluded from peering. + ExcludeExportRanges []string `protobuf:"bytes,3,rep,name=exclude_export_ranges,json=excludeExportRanges,proto3" json:"exclude_export_ranges,omitempty"` + // Optional. IP ranges allowed to be included from peering. + IncludeExportRanges []string `protobuf:"bytes,4,rep,name=include_export_ranges,json=includeExportRanges,proto3" json:"include_export_ranges,omitempty"` + // Output only. The proposed include export IP ranges waiting for hub + // administrator's approval. + ProposedIncludeExportRanges []string `protobuf:"bytes,7,rep,name=proposed_include_export_ranges,json=proposedIncludeExportRanges,proto3" json:"proposed_include_export_ranges,omitempty"` + // Output only. The proposed exclude export IP ranges waiting for hub + // administrator's approval. + ProposedExcludeExportRanges []string `protobuf:"bytes,8,rep,name=proposed_exclude_export_ranges,json=proposedExcludeExportRanges,proto3" json:"proposed_exclude_export_ranges,omitempty"` +} + +func (x *LinkedProducerVpcNetwork) Reset() { + *x = LinkedProducerVpcNetwork{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LinkedProducerVpcNetwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LinkedProducerVpcNetwork) ProtoMessage() {} + +func (x *LinkedProducerVpcNetwork) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[53] + 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 LinkedProducerVpcNetwork.ProtoReflect.Descriptor instead. +func (*LinkedProducerVpcNetwork) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{53} +} + +func (x *LinkedProducerVpcNetwork) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *LinkedProducerVpcNetwork) GetServiceConsumerVpcSpoke() string { + if x != nil { + return x.ServiceConsumerVpcSpoke + } + return "" +} + +func (x *LinkedProducerVpcNetwork) GetPeering() string { + if x != nil { + return x.Peering + } + return "" +} + +func (x *LinkedProducerVpcNetwork) GetProducerNetwork() string { + if x != nil { + return x.ProducerNetwork + } + return "" +} + +func (x *LinkedProducerVpcNetwork) GetExcludeExportRanges() []string { + if x != nil { + return x.ExcludeExportRanges + } + return nil +} + +func (x *LinkedProducerVpcNetwork) GetIncludeExportRanges() []string { + if x != nil { + return x.IncludeExportRanges + } + return nil +} + +func (x *LinkedProducerVpcNetwork) GetProposedIncludeExportRanges() []string { + if x != nil { + return x.ProposedIncludeExportRanges + } + return nil +} + +func (x *LinkedProducerVpcNetwork) GetProposedExcludeExportRanges() []string { + if x != nil { + return x.ProposedExcludeExportRanges + } + return nil +} + +// A router appliance instance is a Compute Engine virtual machine (VM) instance +// that acts as a BGP speaker. A router appliance instance is specified by the +// URI of the VM and the internal IP address of one of the VM's network +// interfaces. +type RouterApplianceInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the VM. + VirtualMachine string `protobuf:"bytes,1,opt,name=virtual_machine,json=virtualMachine,proto3" json:"virtual_machine,omitempty"` + // The IP address on the VM to use for peering. + IpAddress string `protobuf:"bytes,3,opt,name=ip_address,json=ipAddress,proto3" json:"ip_address,omitempty"` +} + +func (x *RouterApplianceInstance) Reset() { + *x = RouterApplianceInstance{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouterApplianceInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouterApplianceInstance) ProtoMessage() {} + +func (x *RouterApplianceInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[54] + 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 RouterApplianceInstance.ProtoReflect.Descriptor instead. +func (*RouterApplianceInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{54} +} + +func (x *RouterApplianceInstance) GetVirtualMachine() string { + if x != nil { + return x.VirtualMachine + } + return "" +} + +func (x *RouterApplianceInstance) GetIpAddress() string { + if x != nil { + return x.IpAddress + } + return "" +} + +// Metadata about locations +type LocationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of supported features + LocationFeatures []LocationFeature `protobuf:"varint,1,rep,packed,name=location_features,json=locationFeatures,proto3,enum=google.cloud.networkconnectivity.v1beta.LocationFeature" json:"location_features,omitempty"` +} + +func (x *LocationMetadata) Reset() { + *x = LocationMetadata{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LocationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LocationMetadata) ProtoMessage() {} + +func (x *LocationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[55] + 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 LocationMetadata.ProtoReflect.Descriptor instead. +func (*LocationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{55} +} + +func (x *LocationMetadata) GetLocationFeatures() []LocationFeature { + if x != nil { + return x.LocationFeatures + } + return nil +} + +type NextHopVpcNetwork struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the VPC network resource + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *NextHopVpcNetwork) Reset() { + *x = NextHopVpcNetwork{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NextHopVpcNetwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextHopVpcNetwork) ProtoMessage() {} + +func (x *NextHopVpcNetwork) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[56] + 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 NextHopVpcNetwork.ProtoReflect.Descriptor instead. +func (*NextHopVpcNetwork) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{56} +} + +func (x *NextHopVpcNetwork) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +// A route next hop that leads to a VPN tunnel resource. +type NextHopVPNTunnel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the VPN tunnel resource. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // The VPC network where this VPN tunnel is located. + VpcNetwork string `protobuf:"bytes,2,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Indicates whether site-to-site data transfer is allowed for this VPN tunnel + // resource. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,3,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` +} + +func (x *NextHopVPNTunnel) Reset() { + *x = NextHopVPNTunnel{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NextHopVPNTunnel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextHopVPNTunnel) ProtoMessage() {} + +func (x *NextHopVPNTunnel) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[57] + 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 NextHopVPNTunnel.ProtoReflect.Descriptor instead. +func (*NextHopVPNTunnel) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{57} +} + +func (x *NextHopVPNTunnel) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *NextHopVPNTunnel) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *NextHopVPNTunnel) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +// A route next hop that leads to a Router appliance instance. +type NextHopRouterApplianceInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the Router appliance instance. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // The VPC network where this VM is located. + VpcNetwork string `protobuf:"bytes,2,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Indicates whether site-to-site data transfer is allowed for this Router + // appliance instance resource. Data transfer is available only in [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,3,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` +} + +func (x *NextHopRouterApplianceInstance) Reset() { + *x = NextHopRouterApplianceInstance{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NextHopRouterApplianceInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextHopRouterApplianceInstance) ProtoMessage() {} + +func (x *NextHopRouterApplianceInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[58] + 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 NextHopRouterApplianceInstance.ProtoReflect.Descriptor instead. +func (*NextHopRouterApplianceInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{58} +} + +func (x *NextHopRouterApplianceInstance) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *NextHopRouterApplianceInstance) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *NextHopRouterApplianceInstance) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +// A route next hop that leads to an interconnect attachment resource. +type NextHopInterconnectAttachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the interconnect attachment resource. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // The VPC network where this interconnect attachment is located. + VpcNetwork string `protobuf:"bytes,2,opt,name=vpc_network,json=vpcNetwork,proto3" json:"vpc_network,omitempty"` + // Indicates whether site-to-site data transfer is allowed for this + // interconnect attachment resource. Data transfer is available only in + // [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + SiteToSiteDataTransfer bool `protobuf:"varint,3,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` +} + +func (x *NextHopInterconnectAttachment) Reset() { + *x = NextHopInterconnectAttachment{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NextHopInterconnectAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextHopInterconnectAttachment) ProtoMessage() {} + +func (x *NextHopInterconnectAttachment) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[59] + 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 NextHopInterconnectAttachment.ProtoReflect.Descriptor instead. +func (*NextHopInterconnectAttachment) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{59} +} + +func (x *NextHopInterconnectAttachment) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *NextHopInterconnectAttachment) GetVpcNetwork() string { + if x != nil { + return x.VpcNetwork + } + return "" +} + +func (x *NextHopInterconnectAttachment) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +// A route next hop that leads to a spoke resource. +type NextHopSpoke struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The URI of the spoke resource. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Indicates whether site-to-site data transfer is allowed for this + // spoke resource. Data transfer is available only in + // [supported + // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). + // Whether this route is accessible to other hybrid spokes with site-to-site + // data transfer enabled. If this is false, the route is only accessible to + // VPC spokes of the connected Hub. + SiteToSiteDataTransfer bool `protobuf:"varint,2,opt,name=site_to_site_data_transfer,json=siteToSiteDataTransfer,proto3" json:"site_to_site_data_transfer,omitempty"` +} + +func (x *NextHopSpoke) Reset() { + *x = NextHopSpoke{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NextHopSpoke) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NextHopSpoke) ProtoMessage() {} + +func (x *NextHopSpoke) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[60] + 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 NextHopSpoke.ProtoReflect.Descriptor instead. +func (*NextHopSpoke) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{60} +} + +func (x *NextHopSpoke) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *NextHopSpoke) GetSiteToSiteDataTransfer() bool { + if x != nil { + return x.SiteToSiteDataTransfer + } + return false +} + +// Summarizes information about the spokes associated with a hub. +// The summary includes a count of spokes according to type +// and according to state. If any spokes are inactive, +// the summary also lists the reasons they are inactive, +// including a count for each reason. +type SpokeSummary struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Counts the number of spokes of each type that are + // associated with a specific hub. + SpokeTypeCounts []*SpokeSummary_SpokeTypeCount `protobuf:"bytes,1,rep,name=spoke_type_counts,json=spokeTypeCounts,proto3" json:"spoke_type_counts,omitempty"` + // Output only. Counts the number of spokes that are in each state + // and associated with a given hub. + SpokeStateCounts []*SpokeSummary_SpokeStateCount `protobuf:"bytes,2,rep,name=spoke_state_counts,json=spokeStateCounts,proto3" json:"spoke_state_counts,omitempty"` + // Output only. Counts the number of spokes that are inactive for each + // possible reason and associated with a given hub. + SpokeStateReasonCounts []*SpokeSummary_SpokeStateReasonCount `protobuf:"bytes,3,rep,name=spoke_state_reason_counts,json=spokeStateReasonCounts,proto3" json:"spoke_state_reason_counts,omitempty"` +} + +func (x *SpokeSummary) Reset() { + *x = SpokeSummary{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SpokeSummary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpokeSummary) ProtoMessage() {} + +func (x *SpokeSummary) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[61] + 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 SpokeSummary.ProtoReflect.Descriptor instead. +func (*SpokeSummary) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{61} +} + +func (x *SpokeSummary) GetSpokeTypeCounts() []*SpokeSummary_SpokeTypeCount { + if x != nil { + return x.SpokeTypeCounts + } + return nil +} + +func (x *SpokeSummary) GetSpokeStateCounts() []*SpokeSummary_SpokeStateCount { + if x != nil { + return x.SpokeStateCounts + } + return nil +} + +func (x *SpokeSummary) GetSpokeStateReasonCounts() []*SpokeSummary_SpokeStateReasonCount { + if x != nil { + return x.SpokeStateReasonCounts + } + return nil +} + +// The request for +// [HubService.GetGroup][google.cloud.networkconnectivity.v1beta.HubService.GetGroup]. +type GetGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the route table resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetGroupRequest) Reset() { + *x = GetGroupRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupRequest) ProtoMessage() {} + +func (x *GetGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[62] + 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 GetGroupRequest.ProtoReflect.Descriptor instead. +func (*GetGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{62} +} + +func (x *GetGroupRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for +// [HubService.UpdateGroup][google.cloud.networkconnectivity.v1beta.HubService.UpdateGroup] +// method. +type UpdateGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. In the case of an update to an existing group, field mask is used + // to specify the fields to be overwritten. The fields specified in the + // update_mask are relative to the resource, not the full request. A field is + // overwritten if it is in the mask. If the user does not provide a mask, then + // all fields are overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The state that the group should be in after the update. + Group *Group `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"` + // Optional. A request ID to identify requests. Specify a unique request ID so + // that if you must retry your request, the server knows to ignore the request + // if it has already been completed. The server guarantees that a request + // doesn't result in creation of duplicate commitments for at least 60 + // minutes. + // + // 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 to see whether the original operation + // was received. If it was, the server ignores the second request. This + // behavior prevents clients from mistakenly creating duplicate commitments. + // + // The request ID must be a valid UUID, with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateGroupRequest) Reset() { + *x = UpdateGroupRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateGroupRequest) ProtoMessage() {} + +func (x *UpdateGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[63] + 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 UpdateGroupRequest.ProtoReflect.Descriptor instead. +func (*UpdateGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{63} +} + +func (x *UpdateGroupRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateGroupRequest) GetGroup() *Group { + if x != nil { + return x.Group + } + return nil +} + +func (x *UpdateGroupRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// The reason for the current state of the spoke. +type Spoke_StateReason struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The code associated with this reason. + Code Spoke_StateReason_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.networkconnectivity.v1beta.Spoke_StateReason_Code" json:"code,omitempty"` + // Human-readable details about this reason. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + // Additional information provided by the user in the RejectSpoke call. + UserDetails string `protobuf:"bytes,3,opt,name=user_details,json=userDetails,proto3" json:"user_details,omitempty"` +} + +func (x *Spoke_StateReason) Reset() { + *x = Spoke_StateReason{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Spoke_StateReason) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Spoke_StateReason) ProtoMessage() {} + +func (x *Spoke_StateReason) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[65] + 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 Spoke_StateReason.ProtoReflect.Descriptor instead. +func (*Spoke_StateReason) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *Spoke_StateReason) GetCode() Spoke_StateReason_Code { + if x != nil { + return x.Code + } + return Spoke_StateReason_CODE_UNSPECIFIED +} + +func (x *Spoke_StateReason) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *Spoke_StateReason) GetUserDetails() string { + if x != nil { + return x.UserDetails + } + return "" +} + +// A list of IP ranges that are reserved for this gateway's internal +// intfrastructure. +type Gateway_IpRangeReservation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. A block of IP addresses used to allocate supporting + // infrastructure for this gateway. This block must not overlap with subnets + // in any spokes or peer VPC networks that the gateway can communicate with. + // Example: "10.1.2.0/24" + IpRange string `protobuf:"bytes,1,opt,name=ip_range,json=ipRange,proto3" json:"ip_range,omitempty"` +} + +func (x *Gateway_IpRangeReservation) Reset() { + *x = Gateway_IpRangeReservation{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Gateway_IpRangeReservation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Gateway_IpRangeReservation) ProtoMessage() {} + +func (x *Gateway_IpRangeReservation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[70] + 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 Gateway_IpRangeReservation.ProtoReflect.Descriptor instead. +func (*Gateway_IpRangeReservation) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{45, 0} +} + +func (x *Gateway_IpRangeReservation) GetIpRange() string { + if x != nil { + return x.IpRange + } + return "" +} + +// The number of spokes of a given type that are associated +// with a specific hub. The type indicates what kind of +// resource is associated with the spoke. +type SpokeSummary_SpokeTypeCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The type of the spokes. + SpokeType SpokeType `protobuf:"varint,1,opt,name=spoke_type,json=spokeType,proto3,enum=google.cloud.networkconnectivity.v1beta.SpokeType" json:"spoke_type,omitempty"` + // Output only. The total number of spokes of this type that are + // associated with the hub. + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *SpokeSummary_SpokeTypeCount) Reset() { + *x = SpokeSummary_SpokeTypeCount{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SpokeSummary_SpokeTypeCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpokeSummary_SpokeTypeCount) ProtoMessage() {} + +func (x *SpokeSummary_SpokeTypeCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[72] + 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 SpokeSummary_SpokeTypeCount.ProtoReflect.Descriptor instead. +func (*SpokeSummary_SpokeTypeCount) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{61, 0} +} + +func (x *SpokeSummary_SpokeTypeCount) GetSpokeType() SpokeType { + if x != nil { + return x.SpokeType + } + return SpokeType_SPOKE_TYPE_UNSPECIFIED +} + +func (x *SpokeSummary_SpokeTypeCount) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// The number of spokes that are in a particular state +// and associated with a given hub. +type SpokeSummary_SpokeStateCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The state of the spokes. + State State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.State" json:"state,omitempty"` + // Output only. The total number of spokes that are in this state + // and associated with a given hub. + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *SpokeSummary_SpokeStateCount) Reset() { + *x = SpokeSummary_SpokeStateCount{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SpokeSummary_SpokeStateCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpokeSummary_SpokeStateCount) ProtoMessage() {} + +func (x *SpokeSummary_SpokeStateCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[73] + 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 SpokeSummary_SpokeStateCount.ProtoReflect.Descriptor instead. +func (*SpokeSummary_SpokeStateCount) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{61, 1} +} + +func (x *SpokeSummary_SpokeStateCount) GetState() State { + if x != nil { + return x.State + } + return State_STATE_UNSPECIFIED +} + +func (x *SpokeSummary_SpokeStateCount) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +// The number of spokes in the hub that are inactive for this reason. +type SpokeSummary_SpokeStateReasonCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The reason that a spoke is inactive. + StateReasonCode Spoke_StateReason_Code `protobuf:"varint,1,opt,name=state_reason_code,json=stateReasonCode,proto3,enum=google.cloud.networkconnectivity.v1beta.Spoke_StateReason_Code" json:"state_reason_code,omitempty"` + // Output only. The total number of spokes that are inactive for a + // particular reason and associated with a given hub. + Count int64 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *SpokeSummary_SpokeStateReasonCount) Reset() { + *x = SpokeSummary_SpokeStateReasonCount{} + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SpokeSummary_SpokeStateReasonCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpokeSummary_SpokeStateReasonCount) ProtoMessage() {} + +func (x *SpokeSummary_SpokeStateReasonCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[74] + 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 SpokeSummary_SpokeStateReasonCount.ProtoReflect.Descriptor instead. +func (*SpokeSummary_SpokeStateReasonCount) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP(), []int{61, 2} +} + +func (x *SpokeSummary_SpokeStateReasonCount) GetStateReasonCode() Spoke_StateReason_Code { + if x != nil { + return x.StateReasonCode + } + return Spoke_StateReason_CODE_UNSPECIFIED +} + +func (x *SpokeSummary_SpokeStateReasonCount) GetCount() int64 { + if x != nil { + return x.Count + } + return 0 +} + +var File_google_cloud_networkconnectivity_v1beta_hub_proto protoreflect.FileDescriptor + +var file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDesc = []byte{ + 0x0a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x68, 0x75, 0x62, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x34, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x08, 0x0a, 0x03, 0x48, 0x75, 0x62, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x48, 0x75, 0x62, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x75, + 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x5b, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x70, + 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x50, 0x43, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x70, 0x63, 0x73, 0x12, + 0x26, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, + 0x0b, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0d, 0x73, 0x70, 0x6f, 0x6b, 0x65, + 0x5f, 0x73, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x75, + 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x70, 0x6f, 0x6b, + 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x59, 0x0a, 0x0b, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, 0x6f, + 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x5f, 0x74, 0x6f, + 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, + 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x73, + 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x12, 0x27, 0x0a, 0x0a, 0x65, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x73, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x73, 0x63, + 0x88, 0x01, 0x01, 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, 0x3a, 0x5b, + 0xea, 0x41, 0x58, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x12, 0x2e, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x7b, 0x68, 0x75, 0x62, 0x7d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x73, 0x63, 0x22, 0xb0, 0x01, 0x0a, 0x0a, 0x52, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x56, 0x50, 0x43, 0x12, 0x35, 0x0a, 0x03, 0x75, 0x72, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x6b, 0x0a, 0x32, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x72, + 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x74, + 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, + 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x2a, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x46, 0x6f, 0x72, 0x4e, 0x65, + 0x77, 0x53, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x22, 0xe9, 0x0f, + 0x0a, 0x05, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x40, 0x0a, 0x03, 0x68, 0x75, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, + 0x05, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x03, 0x68, 0x75, + 0x62, 0x12, 0x46, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x30, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x6c, 0x0a, 0x12, 0x6c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x5f, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x6e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x93, 0x01, 0x0a, 0x1f, 0x6c, 0x69, 0x6e, 0x6b, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1d, + 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x97, 0x01, + 0x0a, 0x21, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1e, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x6c, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x65, + 0x64, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x14, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, + 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x63, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x4f, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x85, 0x01, 0x0a, 0x1b, 0x6c, 0x69, 0x6e, 0x6b, 0x65, + 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x50, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x65, 0x72, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x64, + 0x75, 0x63, 0x65, 0x72, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x20, + 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, + 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x15, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x12, 0x56, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, + 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x40, 0x0a, 0x1a, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x17, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x50, 0x61, 0x74, 0x68, 0x73, 0x50, 0x65, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0xbb, 0x02, 0x0a, 0x0b, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x75, 0x73, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x99, 0x01, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x01, 0x12, 0x0c, + 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x41, 0x55, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x56, 0x49, 0x45, 0x57, 0x10, 0x05, 0x12, + 0x13, 0x0a, 0x0f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 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, 0x3a, 0x65, 0xea, 0x41, 0x62, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x12, 0x36, 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, 0x70, 0x6f, 0x6b, 0x65, + 0x73, 0x2f, 0x7b, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x7d, 0x22, 0xbf, 0x04, 0x0a, 0x0a, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 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, 0x3a, 0x7c, 0xea, + 0x41, 0x79, 0x0a, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x48, 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, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x7b, 0x68, 0x75, 0x62, + 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x7d, 0x22, 0xb4, 0x0b, 0x0a, 0x05, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, + 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x70, 0x5f, 0x63, 0x69, 0x64, 0x72, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x43, 0x69, 0x64, + 0x72, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x4b, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x70, 0x0a, 0x14, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, + 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4e, 0x65, 0x78, 0x74, + 0x48, 0x6f, 0x70, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x42, 0x03, 0xe0, + 0x41, 0x05, 0x52, 0x11, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x56, 0x70, 0x63, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x52, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x46, 0x0a, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, + 0x05, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x05, + 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x6d, 0x0a, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x76, 0x70, 0x6e, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4e, + 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x56, 0x50, 0x4e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x42, + 0x03, 0xe0, 0x41, 0x05, 0x52, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x56, 0x70, 0x6e, + 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x98, 0x01, 0x0a, 0x22, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x05, 0x52, 0x1e, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x94, 0x01, 0x0a, 0x20, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x1d, 0x6e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x60, 0x0a, 0x0e, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x6f, 0x70, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x6e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x53, 0x70, 0x6f, 0x6b, 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, 0x3a, 0x8a, 0x01, 0xea, 0x41, 0x86, 0x01, 0x0a, 0x2b, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x48, 0x75, 0x62, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x57, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, + 0x75, 0x62, 0x73, 0x2f, 0x7b, 0x68, 0x75, 0x62, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x7d, 0x22, 0xe2, 0x05, 0x0a, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x59, 0x0a, 0x0b, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x6f, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x56, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 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, 0x3a, 0x6c, 0xea, 0x41, 0x69, 0x0a, 0x28, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x6f, 0x75, 0x70, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, + 0x62, 0x73, 0x2f, 0x7b, 0x68, 0x75, 0x62, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, + 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x22, 0x43, 0x0a, 0x0a, 0x41, 0x75, 0x74, 0x6f, 0x41, + 0x63, 0x63, 0x65, 0x70, 0x74, 0x12, 0x35, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x61, 0x75, 0x74, 0x6f, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x22, 0xc3, 0x01, 0x0a, + 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x68, 0x75, 0x62, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x48, 0x75, 0x62, 0x52, 0x04, 0x68, 0x75, 0x62, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x53, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, + 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x06, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x68, 0x75, 0x62, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x03, + 0x68, 0x75, 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x48, 0x75, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x68, 0x75, + 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x43, 0x0a, 0x03, + 0x68, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x48, 0x75, 0x62, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x68, 0x75, + 0x62, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x7a, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, + 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, + 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x91, 0x03, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, + 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x5b, 0x0a, 0x04, 0x76, 0x69, 0x65, 0x77, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, 0x76, + 0x69, 0x65, 0x77, 0x22, 0x40, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x50, 0x4f, 0x4b, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x42, 0x41, 0x53, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x54, 0x41, 0x49, + 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, + 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x46, 0x0a, 0x06, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, + 0x06, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x75, 0x62, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x42, 0x79, 0x12, 0x1e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x42, 0x79, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x75, 0x62, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, + 0x12, 0x68, 0x75, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x48, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x10, 0x68, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xb6, 0x01, 0x0a, + 0x0e, 0x48, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x62, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, + 0x12, 0x73, 0x0a, 0x16, 0x70, 0x73, 0x63, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x73, 0x63, 0x50, 0x72, + 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x14, 0x70, 0x73, 0x63, 0x50, 0x72, 0x6f, 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xaf, 0x04, 0x0a, 0x14, 0x50, 0x73, 0x63, 0x50, 0x72, 0x6f, + 0x70, 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x56, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x73, 0x63, 0x50, 0x72, 0x6f, 0x70, + 0x61, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x43, + 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, + 0x50, 0x52, 0x4f, 0x50, 0x41, 0x47, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x37, 0x0a, + 0x33, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x45, 0x52, 0x5f, + 0x50, 0x52, 0x4f, 0x50, 0x41, 0x47, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, + 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x45, 0x58, 0x43, 0x45, + 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x29, 0x0a, 0x25, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, + 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x45, 0x52, 0x5f, 0x4e, 0x41, 0x54, 0x5f, 0x49, 0x50, 0x5f, + 0x53, 0x50, 0x41, 0x43, 0x45, 0x5f, 0x45, 0x58, 0x48, 0x41, 0x55, 0x53, 0x54, 0x45, 0x44, 0x10, + 0x04, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x44, 0x55, + 0x43, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, 0x45, 0x45, 0x44, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x5f, 0x43, 0x4f, + 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x4f, 0x54, 0x41, 0x5f, 0x45, 0x58, 0x43, + 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x06, 0x22, 0xc5, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0xa6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x06, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, + 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x07, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, + 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x12, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, + 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, + 0x61, 0x73, 0x6b, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x48, 0x75, 0x62, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x4d, 0x0a, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x08, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x72, 0x69, 0x12, + 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0x5e, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x48, 0x75, 0x62, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x05, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x22, 0xed, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x75, + 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x08, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x72, 0x69, + 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x22, 0x5e, 0x0a, 0x16, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x75, 0x62, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x05, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x18, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, + 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, + 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x08, 0x73, 0x70, 0x6f, 0x6b, 0x65, + 0x55, 0x72, 0x69, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x65, 0x74, 0x61, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x45, 0x74, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, + 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x19, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x18, 0x52, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, + 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x08, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x55, 0x72, 0x69, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, + 0x65, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x45, 0x74, 0x61, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, + 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x61, 0x0a, 0x19, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x52, 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x22, 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x49, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x33, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x2d, 0x0a, 0x2b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x35, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xa6, 0x01, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x56, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x0b, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0xca, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x28, 0x0a, 0x26, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x48, 0x75, 0x62, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, + 0x79, 0x22, 0xa6, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, + 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x8b, 0x02, 0x0a, 0x10, 0x4c, + 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, + 0x39, 0x0a, 0x04, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x25, 0xfa, + 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x70, 0x6e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x04, 0x75, 0x72, 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x69, + 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x0b, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x0a, 0x76, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0xa5, 0x02, 0x0a, 0x1d, 0x4c, 0x69, 0x6e, + 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, + 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x04, 0x75, 0x72, + 0x69, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x32, 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x75, 0x72, + 0x69, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x69, + 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x69, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, 0x47, + 0x0a, 0x0b, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x0a, 0x76, 0x70, 0x63, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x22, 0xbe, 0x02, 0x0a, 0x1e, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x5e, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, + 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, + 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x12, + 0x47, 0x0a, 0x0b, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x0a, 0x76, 0x70, + 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x69, 0x6e, + 0x63, 0x6c, 0x75, 0x64, 0x65, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x22, 0xb4, 0x03, 0x0a, 0x10, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x56, 0x70, 0x63, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x38, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x37, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x12, 0x48, 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x1b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x1e, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x70, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x65, 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x60, 0x0a, 0x13, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x65, 0x72, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x56, + 0x70, 0x63, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x22, 0x9e, 0x04, 0x0a, 0x07, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x12, 0x7c, 0x0a, 0x15, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x69, + 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x61, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, + 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x63, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0c, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, + 0x5b, 0x0a, 0x0e, 0x73, 0x61, 0x63, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2e, 0x0a, + 0x2c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x41, 0x43, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x0d, 0x73, + 0x61, 0x63, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x1a, 0x34, 0x0a, 0x12, + 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x69, 0x70, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x75, 0x0a, 0x0f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x61, 0x70, + 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, + 0x5f, 0x43, 0x41, 0x50, 0x41, 0x43, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x41, 0x50, 0x41, 0x43, + 0x49, 0x54, 0x59, 0x5f, 0x31, 0x5f, 0x47, 0x42, 0x50, 0x53, 0x10, 0x05, 0x12, 0x14, 0x0a, 0x10, + 0x43, 0x41, 0x50, 0x41, 0x43, 0x49, 0x54, 0x59, 0x5f, 0x31, 0x30, 0x5f, 0x47, 0x42, 0x50, 0x53, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x50, 0x41, 0x43, 0x49, 0x54, 0x59, 0x5f, 0x31, + 0x30, 0x30, 0x5f, 0x47, 0x42, 0x50, 0x53, 0x10, 0x04, 0x22, 0xc1, 0x07, 0x0a, 0x16, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 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, 0x40, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x63, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x71, + 0x75, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x08, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x49, 0x64, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x69, 0x70, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x69, 0x70, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x24, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x6c, 0x0a, 0x09, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, + 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x3c, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x19, 0x0a, 0x15, 0x52, 0x45, 0x43, 0x49, 0x50, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, + 0x41, 0x44, 0x56, 0x45, 0x52, 0x54, 0x49, 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x55, 0x42, + 0x10, 0x01, 0x3a, 0xdb, 0x01, 0xea, 0x41, 0xd7, 0x01, 0x0a, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x69, 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, 0x70, + 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x7d, 0x2f, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x7d, 0x2a, + 0x17, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x32, 0x16, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xdf, 0x02, + 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x42, 0x0a, 0x1b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x49, 0x64, 0x12, 0x7e, 0x0a, 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, + 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, + 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, + 0x79, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x55, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x3b, 0x0a, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x22, 0x4c, + 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, + 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x48, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, + 0x6f, 0x6b, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x22, 0xec, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x19, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x17, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x7e, 0x0a, + 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x2a, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xa8, 0x01, 0x0a, 0x23, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x55, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x41, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x3b, 0x0a, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, + 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x22, 0xc3, 0x04, 0x0a, 0x18, 0x4c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x05, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x12, 0x6d, 0x0a, 0x1a, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x76, 0x70, 0x63, 0x5f, 0x73, 0x70, 0x6f, 0x6b, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x2a, 0x0a, + 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x17, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x56, 0x70, 0x63, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, + 0x67, 0x12, 0x51, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x03, + 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x15, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, + 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x37, 0x0a, + 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, + 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x49, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, + 0x12, 0x48, 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x1b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x64, 0x45, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x78, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x17, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x4d, 0x0a, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x79, 0x0a, 0x10, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x65, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x10, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, + 0x4a, 0x0a, 0x11, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x56, 0x70, 0x63, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x35, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0xcd, 0x01, 0x0a, 0x10, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x56, 0x50, 0x4e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, + 0x12, 0x37, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xfa, + 0x41, 0x22, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x56, 0x70, 0x6e, 0x54, 0x75, + 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x44, 0x0a, 0x0b, 0x76, 0x70, 0x63, + 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, + 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x52, 0x0a, 0x76, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, + 0x3a, 0x0a, 0x1a, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x22, 0xda, 0x01, 0x0a, 0x1e, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x36, + 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, + 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x44, 0x0a, 0x0b, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x52, 0x0a, 0x76, 0x70, 0x63, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x1a, + 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x22, 0xe7, 0x01, 0x0a, 0x1d, 0x4e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x44, 0x0a, 0x03, 0x75, 0x72, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x32, 0xfa, 0x41, 0x2f, 0x0a, 0x2d, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x03, 0x75, 0x72, 0x69, + 0x12, 0x44, 0x0a, 0x0b, 0x76, 0x70, 0x63, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x0a, 0x76, 0x70, 0x63, 0x4e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, + 0x6f, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, + 0x54, 0x6f, 0x53, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x22, 0x8b, 0x01, 0x0a, 0x0c, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x53, 0x70, + 0x6f, 0x6b, 0x65, 0x12, 0x3f, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2d, 0xfa, 0x41, 0x2a, 0x0a, 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, + 0x03, 0x75, 0x72, 0x69, 0x12, 0x3a, 0x0a, 0x1a, 0x73, 0x69, 0x74, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x73, 0x69, 0x74, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x73, 0x69, 0x74, 0x65, 0x54, 0x6f, + 0x53, 0x69, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x22, 0xb3, 0x06, 0x0a, 0x0c, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, + 0x79, 0x12, 0x75, 0x0a, 0x11, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x6d, + 0x61, 0x72, 0x79, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x12, 0x73, 0x70, 0x6f, 0x6b, + 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x10, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x19, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x75, 0x6d, 0x6d, 0x61, 0x72, 0x79, 0x2e, 0x53, 0x70, + 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x1a, 0x83, 0x01, 0x0a, 0x0e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0a, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x09, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x77, 0x0a, 0x0f, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, + 0xa4, 0x01, 0x0a, 0x15, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x11, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x57, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x30, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2a, 0x0a, + 0x28, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc5, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x49, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x2a, 0x6c, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x16, 0x0a, 0x12, 0x56, 0x50, 0x43, 0x5f, 0x50, 0x52, 0x49, 0x4d, 0x41, 0x52, 0x59, 0x5f, + 0x53, 0x55, 0x42, 0x4e, 0x45, 0x54, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x50, 0x43, 0x5f, + 0x53, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x52, 0x59, 0x5f, 0x53, 0x55, 0x42, 0x4e, 0x45, 0x54, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x59, 0x4e, 0x41, 0x4d, 0x49, 0x43, 0x5f, 0x52, 0x4f, + 0x55, 0x54, 0x45, 0x10, 0x03, 0x2a, 0x9a, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, + 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0d, 0x0a, + 0x09, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, + 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x42, 0x53, 0x4f, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, + 0x10, 0x0b, 0x2a, 0xa2, 0x01, 0x0a, 0x09, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x50, 0x4f, 0x4b, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, + 0x56, 0x50, 0x4e, 0x5f, 0x54, 0x55, 0x4e, 0x4e, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, + 0x49, 0x4e, 0x54, 0x45, 0x52, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x5f, 0x41, 0x54, 0x54, + 0x41, 0x43, 0x48, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x55, + 0x54, 0x45, 0x52, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x41, 0x4e, 0x43, 0x45, 0x10, 0x03, 0x12, + 0x0f, 0x0a, 0x0b, 0x56, 0x50, 0x43, 0x5f, 0x4e, 0x45, 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x10, 0x05, 0x12, 0x18, 0x0a, + 0x14, 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x45, 0x52, 0x5f, 0x56, 0x50, 0x43, 0x5f, 0x4e, 0x45, + 0x54, 0x57, 0x4f, 0x52, 0x4b, 0x10, 0x07, 0x2a, 0x35, 0x0a, 0x0a, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x4f, 0x4c, 0x49, 0x43, 0x59, 0x5f, + 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x01, 0x2a, 0x5c, + 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, + 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x52, 0x45, 0x53, 0x45, 0x54, 0x5f, 0x54, 0x4f, 0x50, 0x4f, 0x4c, + 0x4f, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x45, 0x53, 0x48, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x53, + 0x54, 0x41, 0x52, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x59, 0x42, 0x52, 0x49, 0x44, 0x5f, + 0x49, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x2a, 0x7a, 0x0a, 0x0f, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x20, 0x0a, 0x1c, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x45, 0x41, 0x54, + 0x55, 0x52, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4c, 0x4f, + 0x55, 0x44, 0x5f, 0x53, 0x50, 0x4f, 0x4b, 0x45, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, + 0x49, 0x54, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x50, 0x4f, 0x4b, + 0x45, 0x53, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x41, 0x54, 0x45, 0x57, 0x41, 0x59, 0x5f, + 0x53, 0x50, 0x4f, 0x4b, 0x45, 0x53, 0x10, 0x03, 0x32, 0xd7, 0x34, 0x0a, 0x0a, 0x48, 0x75, 0x62, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x08, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x75, 0x62, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, + 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, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x7d, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x12, 0xb0, 0x01, + 0x0a, 0x06, 0x47, 0x65, 0x74, 0x48, 0x75, 0x62, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x48, 0x75, 0x62, 0x22, 0x40, + 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xd4, 0x01, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, 0x75, 0x62, 0x12, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x48, + 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, 0x41, 0x18, 0x0a, 0x03, 0x48, + 0x75, 0x62, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x68, + 0x75, 0x62, 0x2c, 0x68, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, + 0x03, 0x68, 0x75, 0x62, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, + 0x6c, 0x7d, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x12, 0xd6, 0x01, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x48, 0x75, 0x62, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x6f, 0xca, 0x41, 0x18, 0x0a, 0x03, 0x48, 0x75, 0x62, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0f, 0x68, + 0x75, 0x62, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x03, 0x68, 0x75, 0x62, 0x32, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x68, 0x75, 0x62, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xd4, 0x01, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x75, 0x62, 0x12, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, + 0x75, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6d, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, + 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdb, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, + 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 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, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0xdf, 0x01, 0x0a, 0x0e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, + 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x75, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, 0x67, 0x6c, 0x6f, + 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xc6, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 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, 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, 0x70, 0x6f, 0x6b, 0x65, 0x73, + 0x12, 0xb3, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x38, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x22, 0x3d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x70, 0x6f, + 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x72, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, + 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, + 0x05, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x12, 0xdf, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x74, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x11, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x05, 0x73, 0x70, 0x6f, + 0x6b, 0x65, 0x32, 0x34, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x73, 0x70, 0x6f, + 0x6b, 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, 0x73, + 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf9, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x75, 0x62, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x2b, + 0x0a, 0x16, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0e, 0x6e, 0x61, + 0x6d, 0x65, 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x42, 0x3a, 0x01, 0x2a, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, + 0x70, 0x6f, 0x6b, 0x65, 0x12, 0xf9, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x48, + 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x2b, 0x0a, 0x16, 0x41, 0x63, + 0x63, 0x65, 0x70, 0x74, 0x48, 0x75, 0x62, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0e, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x73, + 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x01, + 0x2a, 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x12, 0x93, 0x02, 0x0a, 0x11, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b, 0x01, 0xca, 0x41, 0x2e, 0x0a, 0x19, + 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x19, 0x6e, + 0x61, 0x6d, 0x65, 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x2c, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x5f, 0x65, 0x74, 0x61, 0x67, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x01, + 0x2a, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x93, 0x02, 0x0a, 0x11, 0x52, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x41, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9b, + 0x01, 0xca, 0x41, 0x2e, 0x0a, 0x19, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x70, 0x6f, 0x6b, + 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x19, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, + 0x75, 0x72, 0x69, 0x2c, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x5f, 0x65, 0x74, 0x61, 0x67, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x01, 0x2a, 0x22, 0x43, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 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, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0xd5, 0x01, 0x0a, + 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x70, 0x6f, 0x6b, 0x65, 0x12, 0x3b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x70, 0x6f, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6a, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x30, 0x2a, 0x2e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x70, 0x6f, 0x6b, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x4e, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 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, 0x67, 0x6c, + 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcd, 0x01, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x22, 0x57, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, + 0x12, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, + 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x2f, 0x2a, + 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe0, 0x01, 0x0a, 0x0a, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x59, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, + 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0xe6, 0x01, + 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x54, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0xbf, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x49, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x2f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, + 0x75, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xec, 0x01, + 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0xca, 0x41, 0x1a, 0x0a, + 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x11, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x49, 0x3a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x67, 0x72, 0x6f, 0x75, 0x70, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x68, 0x75, 0x62, 0x73, + 0x2f, 0x2a, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe4, 0x02, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd6, 0x01, 0xca, 0x41, 0x2b, + 0x0a, 0x16, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x3b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2c, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x64, 0x3a, + 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x12, 0x80, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x12, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x57, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x93, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x59, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x4a, 0x12, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x70, 0x6f, 0x6b, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0xe6, 0x02, 0x0a, + 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd8, 0x01, 0xca, 0x41, 0x2b, + 0x0a, 0x16, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x24, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x7d, 0x3a, 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x32, 0x61, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x7b, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 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, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x92, 0x02, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, + 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x84, 0x01, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, + 0x2a, 0x48, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x70, 0x6f, 0x6b, 0x65, 0x73, 0x2f, 0x2a, 0x2f, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, + 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x56, 0xca, 0x41, 0x22, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 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, 0xd0, 0x04, 0xea, 0x41, 0x60, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x56, 0x70, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, + 0x76, 0x70, 0x6e, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0xea, 0x41, 0x57, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x34, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x7a, 0x6f, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x7a, 0x6f, 0x6e, 0x65, 0x7d, 0x2f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x7d, 0xea, 0x41, 0x77, 0x0a, 0x2c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x65, + 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x41, 0x43, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x47, 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, 0x63, + 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x61, 0x63, + 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x7d, 0x0a, 0x2b, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x42, 0x08, 0x48, 0x75, 0x62, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x61, + 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0x3b, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x70, 0x62, 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, + 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescOnce sync.Once + file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescData = file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDesc +) + +func file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescGZIP() []byte { + file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescOnce.Do(func() { + file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescData) + }) + return file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDescData +} + +var file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes = make([]protoimpl.EnumInfo, 11) +var file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes = make([]protoimpl.MessageInfo, 75) +var file_google_cloud_networkconnectivity_v1beta_hub_proto_goTypes = []any{ + (RouteType)(0), // 0: google.cloud.networkconnectivity.v1beta.RouteType + (State)(0), // 1: google.cloud.networkconnectivity.v1beta.State + (SpokeType)(0), // 2: google.cloud.networkconnectivity.v1beta.SpokeType + (PolicyMode)(0), // 3: google.cloud.networkconnectivity.v1beta.PolicyMode + (PresetTopology)(0), // 4: google.cloud.networkconnectivity.v1beta.PresetTopology + (LocationFeature)(0), // 5: google.cloud.networkconnectivity.v1beta.LocationFeature + (Spoke_StateReason_Code)(0), // 6: google.cloud.networkconnectivity.v1beta.Spoke.StateReason.Code + (ListHubSpokesRequest_SpokeView)(0), // 7: google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest.SpokeView + (PscPropagationStatus_Code)(0), // 8: google.cloud.networkconnectivity.v1beta.PscPropagationStatus.Code + (Gateway_GatewayCapacity)(0), // 9: google.cloud.networkconnectivity.v1beta.Gateway.GatewayCapacity + (GatewayAdvertisedRoute_Recipient)(0), // 10: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.Recipient + (*Hub)(nil), // 11: google.cloud.networkconnectivity.v1beta.Hub + (*RoutingVPC)(nil), // 12: google.cloud.networkconnectivity.v1beta.RoutingVPC + (*Spoke)(nil), // 13: google.cloud.networkconnectivity.v1beta.Spoke + (*RouteTable)(nil), // 14: google.cloud.networkconnectivity.v1beta.RouteTable + (*Route)(nil), // 15: google.cloud.networkconnectivity.v1beta.Route + (*Group)(nil), // 16: google.cloud.networkconnectivity.v1beta.Group + (*AutoAccept)(nil), // 17: google.cloud.networkconnectivity.v1beta.AutoAccept + (*ListHubsRequest)(nil), // 18: google.cloud.networkconnectivity.v1beta.ListHubsRequest + (*ListHubsResponse)(nil), // 19: google.cloud.networkconnectivity.v1beta.ListHubsResponse + (*GetHubRequest)(nil), // 20: google.cloud.networkconnectivity.v1beta.GetHubRequest + (*CreateHubRequest)(nil), // 21: google.cloud.networkconnectivity.v1beta.CreateHubRequest + (*UpdateHubRequest)(nil), // 22: google.cloud.networkconnectivity.v1beta.UpdateHubRequest + (*DeleteHubRequest)(nil), // 23: google.cloud.networkconnectivity.v1beta.DeleteHubRequest + (*ListHubSpokesRequest)(nil), // 24: google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest + (*ListHubSpokesResponse)(nil), // 25: google.cloud.networkconnectivity.v1beta.ListHubSpokesResponse + (*QueryHubStatusRequest)(nil), // 26: google.cloud.networkconnectivity.v1beta.QueryHubStatusRequest + (*QueryHubStatusResponse)(nil), // 27: google.cloud.networkconnectivity.v1beta.QueryHubStatusResponse + (*HubStatusEntry)(nil), // 28: google.cloud.networkconnectivity.v1beta.HubStatusEntry + (*PscPropagationStatus)(nil), // 29: google.cloud.networkconnectivity.v1beta.PscPropagationStatus + (*ListSpokesRequest)(nil), // 30: google.cloud.networkconnectivity.v1beta.ListSpokesRequest + (*ListSpokesResponse)(nil), // 31: google.cloud.networkconnectivity.v1beta.ListSpokesResponse + (*GetSpokeRequest)(nil), // 32: google.cloud.networkconnectivity.v1beta.GetSpokeRequest + (*CreateSpokeRequest)(nil), // 33: google.cloud.networkconnectivity.v1beta.CreateSpokeRequest + (*UpdateSpokeRequest)(nil), // 34: google.cloud.networkconnectivity.v1beta.UpdateSpokeRequest + (*DeleteSpokeRequest)(nil), // 35: google.cloud.networkconnectivity.v1beta.DeleteSpokeRequest + (*AcceptHubSpokeRequest)(nil), // 36: google.cloud.networkconnectivity.v1beta.AcceptHubSpokeRequest + (*AcceptHubSpokeResponse)(nil), // 37: google.cloud.networkconnectivity.v1beta.AcceptHubSpokeResponse + (*RejectHubSpokeRequest)(nil), // 38: google.cloud.networkconnectivity.v1beta.RejectHubSpokeRequest + (*RejectHubSpokeResponse)(nil), // 39: google.cloud.networkconnectivity.v1beta.RejectHubSpokeResponse + (*AcceptSpokeUpdateRequest)(nil), // 40: google.cloud.networkconnectivity.v1beta.AcceptSpokeUpdateRequest + (*AcceptSpokeUpdateResponse)(nil), // 41: google.cloud.networkconnectivity.v1beta.AcceptSpokeUpdateResponse + (*RejectSpokeUpdateRequest)(nil), // 42: google.cloud.networkconnectivity.v1beta.RejectSpokeUpdateRequest + (*RejectSpokeUpdateResponse)(nil), // 43: google.cloud.networkconnectivity.v1beta.RejectSpokeUpdateResponse + (*GetRouteTableRequest)(nil), // 44: google.cloud.networkconnectivity.v1beta.GetRouteTableRequest + (*GetRouteRequest)(nil), // 45: google.cloud.networkconnectivity.v1beta.GetRouteRequest + (*ListRoutesRequest)(nil), // 46: google.cloud.networkconnectivity.v1beta.ListRoutesRequest + (*ListRoutesResponse)(nil), // 47: google.cloud.networkconnectivity.v1beta.ListRoutesResponse + (*ListRouteTablesRequest)(nil), // 48: google.cloud.networkconnectivity.v1beta.ListRouteTablesRequest + (*ListRouteTablesResponse)(nil), // 49: google.cloud.networkconnectivity.v1beta.ListRouteTablesResponse + (*ListGroupsRequest)(nil), // 50: google.cloud.networkconnectivity.v1beta.ListGroupsRequest + (*ListGroupsResponse)(nil), // 51: google.cloud.networkconnectivity.v1beta.ListGroupsResponse + (*LinkedVpnTunnels)(nil), // 52: google.cloud.networkconnectivity.v1beta.LinkedVpnTunnels + (*LinkedInterconnectAttachments)(nil), // 53: google.cloud.networkconnectivity.v1beta.LinkedInterconnectAttachments + (*LinkedRouterApplianceInstances)(nil), // 54: google.cloud.networkconnectivity.v1beta.LinkedRouterApplianceInstances + (*LinkedVpcNetwork)(nil), // 55: google.cloud.networkconnectivity.v1beta.LinkedVpcNetwork + (*Gateway)(nil), // 56: google.cloud.networkconnectivity.v1beta.Gateway + (*GatewayAdvertisedRoute)(nil), // 57: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute + (*CreateGatewayAdvertisedRouteRequest)(nil), // 58: google.cloud.networkconnectivity.v1beta.CreateGatewayAdvertisedRouteRequest + (*GetGatewayAdvertisedRouteRequest)(nil), // 59: google.cloud.networkconnectivity.v1beta.GetGatewayAdvertisedRouteRequest + (*ListGatewayAdvertisedRoutesRequest)(nil), // 60: google.cloud.networkconnectivity.v1beta.ListGatewayAdvertisedRoutesRequest + (*ListGatewayAdvertisedRoutesResponse)(nil), // 61: google.cloud.networkconnectivity.v1beta.ListGatewayAdvertisedRoutesResponse + (*UpdateGatewayAdvertisedRouteRequest)(nil), // 62: google.cloud.networkconnectivity.v1beta.UpdateGatewayAdvertisedRouteRequest + (*DeleteGatewayAdvertisedRouteRequest)(nil), // 63: google.cloud.networkconnectivity.v1beta.DeleteGatewayAdvertisedRouteRequest + (*LinkedProducerVpcNetwork)(nil), // 64: google.cloud.networkconnectivity.v1beta.LinkedProducerVpcNetwork + (*RouterApplianceInstance)(nil), // 65: google.cloud.networkconnectivity.v1beta.RouterApplianceInstance + (*LocationMetadata)(nil), // 66: google.cloud.networkconnectivity.v1beta.LocationMetadata + (*NextHopVpcNetwork)(nil), // 67: google.cloud.networkconnectivity.v1beta.NextHopVpcNetwork + (*NextHopVPNTunnel)(nil), // 68: google.cloud.networkconnectivity.v1beta.NextHopVPNTunnel + (*NextHopRouterApplianceInstance)(nil), // 69: google.cloud.networkconnectivity.v1beta.NextHopRouterApplianceInstance + (*NextHopInterconnectAttachment)(nil), // 70: google.cloud.networkconnectivity.v1beta.NextHopInterconnectAttachment + (*NextHopSpoke)(nil), // 71: google.cloud.networkconnectivity.v1beta.NextHopSpoke + (*SpokeSummary)(nil), // 72: google.cloud.networkconnectivity.v1beta.SpokeSummary + (*GetGroupRequest)(nil), // 73: google.cloud.networkconnectivity.v1beta.GetGroupRequest + (*UpdateGroupRequest)(nil), // 74: google.cloud.networkconnectivity.v1beta.UpdateGroupRequest + nil, // 75: google.cloud.networkconnectivity.v1beta.Hub.LabelsEntry + (*Spoke_StateReason)(nil), // 76: google.cloud.networkconnectivity.v1beta.Spoke.StateReason + nil, // 77: google.cloud.networkconnectivity.v1beta.Spoke.LabelsEntry + nil, // 78: google.cloud.networkconnectivity.v1beta.RouteTable.LabelsEntry + nil, // 79: google.cloud.networkconnectivity.v1beta.Route.LabelsEntry + nil, // 80: google.cloud.networkconnectivity.v1beta.Group.LabelsEntry + (*Gateway_IpRangeReservation)(nil), // 81: google.cloud.networkconnectivity.v1beta.Gateway.IpRangeReservation + nil, // 82: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.LabelsEntry + (*SpokeSummary_SpokeTypeCount)(nil), // 83: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeTypeCount + (*SpokeSummary_SpokeStateCount)(nil), // 84: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateCount + (*SpokeSummary_SpokeStateReasonCount)(nil), // 85: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateReasonCount + (*timestamppb.Timestamp)(nil), // 86: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 87: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 88: google.longrunning.Operation +} +var file_google_cloud_networkconnectivity_v1beta_hub_proto_depIdxs = []int32{ + 86, // 0: google.cloud.networkconnectivity.v1beta.Hub.create_time:type_name -> google.protobuf.Timestamp + 86, // 1: google.cloud.networkconnectivity.v1beta.Hub.update_time:type_name -> google.protobuf.Timestamp + 75, // 2: google.cloud.networkconnectivity.v1beta.Hub.labels:type_name -> google.cloud.networkconnectivity.v1beta.Hub.LabelsEntry + 1, // 3: google.cloud.networkconnectivity.v1beta.Hub.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 12, // 4: google.cloud.networkconnectivity.v1beta.Hub.routing_vpcs:type_name -> google.cloud.networkconnectivity.v1beta.RoutingVPC + 72, // 5: google.cloud.networkconnectivity.v1beta.Hub.spoke_summary:type_name -> google.cloud.networkconnectivity.v1beta.SpokeSummary + 3, // 6: google.cloud.networkconnectivity.v1beta.Hub.policy_mode:type_name -> google.cloud.networkconnectivity.v1beta.PolicyMode + 4, // 7: google.cloud.networkconnectivity.v1beta.Hub.preset_topology:type_name -> google.cloud.networkconnectivity.v1beta.PresetTopology + 86, // 8: google.cloud.networkconnectivity.v1beta.Spoke.create_time:type_name -> google.protobuf.Timestamp + 86, // 9: google.cloud.networkconnectivity.v1beta.Spoke.update_time:type_name -> google.protobuf.Timestamp + 77, // 10: google.cloud.networkconnectivity.v1beta.Spoke.labels:type_name -> google.cloud.networkconnectivity.v1beta.Spoke.LabelsEntry + 52, // 11: google.cloud.networkconnectivity.v1beta.Spoke.linked_vpn_tunnels:type_name -> google.cloud.networkconnectivity.v1beta.LinkedVpnTunnels + 53, // 12: google.cloud.networkconnectivity.v1beta.Spoke.linked_interconnect_attachments:type_name -> google.cloud.networkconnectivity.v1beta.LinkedInterconnectAttachments + 54, // 13: google.cloud.networkconnectivity.v1beta.Spoke.linked_router_appliance_instances:type_name -> google.cloud.networkconnectivity.v1beta.LinkedRouterApplianceInstances + 55, // 14: google.cloud.networkconnectivity.v1beta.Spoke.linked_vpc_network:type_name -> google.cloud.networkconnectivity.v1beta.LinkedVpcNetwork + 56, // 15: google.cloud.networkconnectivity.v1beta.Spoke.gateway:type_name -> google.cloud.networkconnectivity.v1beta.Gateway + 64, // 16: google.cloud.networkconnectivity.v1beta.Spoke.linked_producer_vpc_network:type_name -> google.cloud.networkconnectivity.v1beta.LinkedProducerVpcNetwork + 1, // 17: google.cloud.networkconnectivity.v1beta.Spoke.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 76, // 18: google.cloud.networkconnectivity.v1beta.Spoke.reasons:type_name -> google.cloud.networkconnectivity.v1beta.Spoke.StateReason + 2, // 19: google.cloud.networkconnectivity.v1beta.Spoke.spoke_type:type_name -> google.cloud.networkconnectivity.v1beta.SpokeType + 86, // 20: google.cloud.networkconnectivity.v1beta.RouteTable.create_time:type_name -> google.protobuf.Timestamp + 86, // 21: google.cloud.networkconnectivity.v1beta.RouteTable.update_time:type_name -> google.protobuf.Timestamp + 78, // 22: google.cloud.networkconnectivity.v1beta.RouteTable.labels:type_name -> google.cloud.networkconnectivity.v1beta.RouteTable.LabelsEntry + 1, // 23: google.cloud.networkconnectivity.v1beta.RouteTable.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 86, // 24: google.cloud.networkconnectivity.v1beta.Route.create_time:type_name -> google.protobuf.Timestamp + 86, // 25: google.cloud.networkconnectivity.v1beta.Route.update_time:type_name -> google.protobuf.Timestamp + 0, // 26: google.cloud.networkconnectivity.v1beta.Route.type:type_name -> google.cloud.networkconnectivity.v1beta.RouteType + 67, // 27: google.cloud.networkconnectivity.v1beta.Route.next_hop_vpc_network:type_name -> google.cloud.networkconnectivity.v1beta.NextHopVpcNetwork + 79, // 28: google.cloud.networkconnectivity.v1beta.Route.labels:type_name -> google.cloud.networkconnectivity.v1beta.Route.LabelsEntry + 1, // 29: google.cloud.networkconnectivity.v1beta.Route.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 68, // 30: google.cloud.networkconnectivity.v1beta.Route.next_hop_vpn_tunnel:type_name -> google.cloud.networkconnectivity.v1beta.NextHopVPNTunnel + 69, // 31: google.cloud.networkconnectivity.v1beta.Route.next_hop_router_appliance_instance:type_name -> google.cloud.networkconnectivity.v1beta.NextHopRouterApplianceInstance + 70, // 32: google.cloud.networkconnectivity.v1beta.Route.next_hop_interconnect_attachment:type_name -> google.cloud.networkconnectivity.v1beta.NextHopInterconnectAttachment + 71, // 33: google.cloud.networkconnectivity.v1beta.Route.next_hop_spoke:type_name -> google.cloud.networkconnectivity.v1beta.NextHopSpoke + 86, // 34: google.cloud.networkconnectivity.v1beta.Group.create_time:type_name -> google.protobuf.Timestamp + 86, // 35: google.cloud.networkconnectivity.v1beta.Group.update_time:type_name -> google.protobuf.Timestamp + 80, // 36: google.cloud.networkconnectivity.v1beta.Group.labels:type_name -> google.cloud.networkconnectivity.v1beta.Group.LabelsEntry + 1, // 37: google.cloud.networkconnectivity.v1beta.Group.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 17, // 38: google.cloud.networkconnectivity.v1beta.Group.auto_accept:type_name -> google.cloud.networkconnectivity.v1beta.AutoAccept + 11, // 39: google.cloud.networkconnectivity.v1beta.ListHubsResponse.hubs:type_name -> google.cloud.networkconnectivity.v1beta.Hub + 11, // 40: google.cloud.networkconnectivity.v1beta.CreateHubRequest.hub:type_name -> google.cloud.networkconnectivity.v1beta.Hub + 87, // 41: google.cloud.networkconnectivity.v1beta.UpdateHubRequest.update_mask:type_name -> google.protobuf.FieldMask + 11, // 42: google.cloud.networkconnectivity.v1beta.UpdateHubRequest.hub:type_name -> google.cloud.networkconnectivity.v1beta.Hub + 7, // 43: google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest.view:type_name -> google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest.SpokeView + 13, // 44: google.cloud.networkconnectivity.v1beta.ListHubSpokesResponse.spokes:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 28, // 45: google.cloud.networkconnectivity.v1beta.QueryHubStatusResponse.hub_status_entries:type_name -> google.cloud.networkconnectivity.v1beta.HubStatusEntry + 29, // 46: google.cloud.networkconnectivity.v1beta.HubStatusEntry.psc_propagation_status:type_name -> google.cloud.networkconnectivity.v1beta.PscPropagationStatus + 8, // 47: google.cloud.networkconnectivity.v1beta.PscPropagationStatus.code:type_name -> google.cloud.networkconnectivity.v1beta.PscPropagationStatus.Code + 13, // 48: google.cloud.networkconnectivity.v1beta.ListSpokesResponse.spokes:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 13, // 49: google.cloud.networkconnectivity.v1beta.CreateSpokeRequest.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 87, // 50: google.cloud.networkconnectivity.v1beta.UpdateSpokeRequest.update_mask:type_name -> google.protobuf.FieldMask + 13, // 51: google.cloud.networkconnectivity.v1beta.UpdateSpokeRequest.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 13, // 52: google.cloud.networkconnectivity.v1beta.AcceptHubSpokeResponse.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 13, // 53: google.cloud.networkconnectivity.v1beta.RejectHubSpokeResponse.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 13, // 54: google.cloud.networkconnectivity.v1beta.AcceptSpokeUpdateResponse.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 13, // 55: google.cloud.networkconnectivity.v1beta.RejectSpokeUpdateResponse.spoke:type_name -> google.cloud.networkconnectivity.v1beta.Spoke + 15, // 56: google.cloud.networkconnectivity.v1beta.ListRoutesResponse.routes:type_name -> google.cloud.networkconnectivity.v1beta.Route + 14, // 57: google.cloud.networkconnectivity.v1beta.ListRouteTablesResponse.route_tables:type_name -> google.cloud.networkconnectivity.v1beta.RouteTable + 16, // 58: google.cloud.networkconnectivity.v1beta.ListGroupsResponse.groups:type_name -> google.cloud.networkconnectivity.v1beta.Group + 65, // 59: google.cloud.networkconnectivity.v1beta.LinkedRouterApplianceInstances.instances:type_name -> google.cloud.networkconnectivity.v1beta.RouterApplianceInstance + 81, // 60: google.cloud.networkconnectivity.v1beta.Gateway.ip_range_reservations:type_name -> google.cloud.networkconnectivity.v1beta.Gateway.IpRangeReservation + 9, // 61: google.cloud.networkconnectivity.v1beta.Gateway.capacity:type_name -> google.cloud.networkconnectivity.v1beta.Gateway.GatewayCapacity + 86, // 62: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.create_time:type_name -> google.protobuf.Timestamp + 86, // 63: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.update_time:type_name -> google.protobuf.Timestamp + 82, // 64: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.labels:type_name -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.LabelsEntry + 1, // 65: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 10, // 66: google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.recipient:type_name -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute.Recipient + 57, // 67: google.cloud.networkconnectivity.v1beta.CreateGatewayAdvertisedRouteRequest.gateway_advertised_route:type_name -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute + 57, // 68: google.cloud.networkconnectivity.v1beta.ListGatewayAdvertisedRoutesResponse.gateway_advertised_routes:type_name -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute + 87, // 69: google.cloud.networkconnectivity.v1beta.UpdateGatewayAdvertisedRouteRequest.update_mask:type_name -> google.protobuf.FieldMask + 57, // 70: google.cloud.networkconnectivity.v1beta.UpdateGatewayAdvertisedRouteRequest.gateway_advertised_route:type_name -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute + 5, // 71: google.cloud.networkconnectivity.v1beta.LocationMetadata.location_features:type_name -> google.cloud.networkconnectivity.v1beta.LocationFeature + 83, // 72: google.cloud.networkconnectivity.v1beta.SpokeSummary.spoke_type_counts:type_name -> google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeTypeCount + 84, // 73: google.cloud.networkconnectivity.v1beta.SpokeSummary.spoke_state_counts:type_name -> google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateCount + 85, // 74: google.cloud.networkconnectivity.v1beta.SpokeSummary.spoke_state_reason_counts:type_name -> google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateReasonCount + 87, // 75: google.cloud.networkconnectivity.v1beta.UpdateGroupRequest.update_mask:type_name -> google.protobuf.FieldMask + 16, // 76: google.cloud.networkconnectivity.v1beta.UpdateGroupRequest.group:type_name -> google.cloud.networkconnectivity.v1beta.Group + 6, // 77: google.cloud.networkconnectivity.v1beta.Spoke.StateReason.code:type_name -> google.cloud.networkconnectivity.v1beta.Spoke.StateReason.Code + 2, // 78: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeTypeCount.spoke_type:type_name -> google.cloud.networkconnectivity.v1beta.SpokeType + 1, // 79: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateCount.state:type_name -> google.cloud.networkconnectivity.v1beta.State + 6, // 80: google.cloud.networkconnectivity.v1beta.SpokeSummary.SpokeStateReasonCount.state_reason_code:type_name -> google.cloud.networkconnectivity.v1beta.Spoke.StateReason.Code + 18, // 81: google.cloud.networkconnectivity.v1beta.HubService.ListHubs:input_type -> google.cloud.networkconnectivity.v1beta.ListHubsRequest + 20, // 82: google.cloud.networkconnectivity.v1beta.HubService.GetHub:input_type -> google.cloud.networkconnectivity.v1beta.GetHubRequest + 21, // 83: google.cloud.networkconnectivity.v1beta.HubService.CreateHub:input_type -> google.cloud.networkconnectivity.v1beta.CreateHubRequest + 22, // 84: google.cloud.networkconnectivity.v1beta.HubService.UpdateHub:input_type -> google.cloud.networkconnectivity.v1beta.UpdateHubRequest + 23, // 85: google.cloud.networkconnectivity.v1beta.HubService.DeleteHub:input_type -> google.cloud.networkconnectivity.v1beta.DeleteHubRequest + 24, // 86: google.cloud.networkconnectivity.v1beta.HubService.ListHubSpokes:input_type -> google.cloud.networkconnectivity.v1beta.ListHubSpokesRequest + 26, // 87: google.cloud.networkconnectivity.v1beta.HubService.QueryHubStatus:input_type -> google.cloud.networkconnectivity.v1beta.QueryHubStatusRequest + 30, // 88: google.cloud.networkconnectivity.v1beta.HubService.ListSpokes:input_type -> google.cloud.networkconnectivity.v1beta.ListSpokesRequest + 32, // 89: google.cloud.networkconnectivity.v1beta.HubService.GetSpoke:input_type -> google.cloud.networkconnectivity.v1beta.GetSpokeRequest + 33, // 90: google.cloud.networkconnectivity.v1beta.HubService.CreateSpoke:input_type -> google.cloud.networkconnectivity.v1beta.CreateSpokeRequest + 34, // 91: google.cloud.networkconnectivity.v1beta.HubService.UpdateSpoke:input_type -> google.cloud.networkconnectivity.v1beta.UpdateSpokeRequest + 38, // 92: google.cloud.networkconnectivity.v1beta.HubService.RejectHubSpoke:input_type -> google.cloud.networkconnectivity.v1beta.RejectHubSpokeRequest + 36, // 93: google.cloud.networkconnectivity.v1beta.HubService.AcceptHubSpoke:input_type -> google.cloud.networkconnectivity.v1beta.AcceptHubSpokeRequest + 40, // 94: google.cloud.networkconnectivity.v1beta.HubService.AcceptSpokeUpdate:input_type -> google.cloud.networkconnectivity.v1beta.AcceptSpokeUpdateRequest + 42, // 95: google.cloud.networkconnectivity.v1beta.HubService.RejectSpokeUpdate:input_type -> google.cloud.networkconnectivity.v1beta.RejectSpokeUpdateRequest + 35, // 96: google.cloud.networkconnectivity.v1beta.HubService.DeleteSpoke:input_type -> google.cloud.networkconnectivity.v1beta.DeleteSpokeRequest + 44, // 97: google.cloud.networkconnectivity.v1beta.HubService.GetRouteTable:input_type -> google.cloud.networkconnectivity.v1beta.GetRouteTableRequest + 45, // 98: google.cloud.networkconnectivity.v1beta.HubService.GetRoute:input_type -> google.cloud.networkconnectivity.v1beta.GetRouteRequest + 46, // 99: google.cloud.networkconnectivity.v1beta.HubService.ListRoutes:input_type -> google.cloud.networkconnectivity.v1beta.ListRoutesRequest + 48, // 100: google.cloud.networkconnectivity.v1beta.HubService.ListRouteTables:input_type -> google.cloud.networkconnectivity.v1beta.ListRouteTablesRequest + 73, // 101: google.cloud.networkconnectivity.v1beta.HubService.GetGroup:input_type -> google.cloud.networkconnectivity.v1beta.GetGroupRequest + 50, // 102: google.cloud.networkconnectivity.v1beta.HubService.ListGroups:input_type -> google.cloud.networkconnectivity.v1beta.ListGroupsRequest + 74, // 103: google.cloud.networkconnectivity.v1beta.HubService.UpdateGroup:input_type -> google.cloud.networkconnectivity.v1beta.UpdateGroupRequest + 58, // 104: google.cloud.networkconnectivity.v1beta.HubService.CreateGatewayAdvertisedRoute:input_type -> google.cloud.networkconnectivity.v1beta.CreateGatewayAdvertisedRouteRequest + 59, // 105: google.cloud.networkconnectivity.v1beta.HubService.GetGatewayAdvertisedRoute:input_type -> google.cloud.networkconnectivity.v1beta.GetGatewayAdvertisedRouteRequest + 60, // 106: google.cloud.networkconnectivity.v1beta.HubService.ListGatewayAdvertisedRoutes:input_type -> google.cloud.networkconnectivity.v1beta.ListGatewayAdvertisedRoutesRequest + 62, // 107: google.cloud.networkconnectivity.v1beta.HubService.UpdateGatewayAdvertisedRoute:input_type -> google.cloud.networkconnectivity.v1beta.UpdateGatewayAdvertisedRouteRequest + 63, // 108: google.cloud.networkconnectivity.v1beta.HubService.DeleteGatewayAdvertisedRoute:input_type -> google.cloud.networkconnectivity.v1beta.DeleteGatewayAdvertisedRouteRequest + 19, // 109: google.cloud.networkconnectivity.v1beta.HubService.ListHubs:output_type -> google.cloud.networkconnectivity.v1beta.ListHubsResponse + 11, // 110: google.cloud.networkconnectivity.v1beta.HubService.GetHub:output_type -> google.cloud.networkconnectivity.v1beta.Hub + 88, // 111: google.cloud.networkconnectivity.v1beta.HubService.CreateHub:output_type -> google.longrunning.Operation + 88, // 112: google.cloud.networkconnectivity.v1beta.HubService.UpdateHub:output_type -> google.longrunning.Operation + 88, // 113: google.cloud.networkconnectivity.v1beta.HubService.DeleteHub:output_type -> google.longrunning.Operation + 25, // 114: google.cloud.networkconnectivity.v1beta.HubService.ListHubSpokes:output_type -> google.cloud.networkconnectivity.v1beta.ListHubSpokesResponse + 27, // 115: google.cloud.networkconnectivity.v1beta.HubService.QueryHubStatus:output_type -> google.cloud.networkconnectivity.v1beta.QueryHubStatusResponse + 31, // 116: google.cloud.networkconnectivity.v1beta.HubService.ListSpokes:output_type -> google.cloud.networkconnectivity.v1beta.ListSpokesResponse + 13, // 117: google.cloud.networkconnectivity.v1beta.HubService.GetSpoke:output_type -> google.cloud.networkconnectivity.v1beta.Spoke + 88, // 118: google.cloud.networkconnectivity.v1beta.HubService.CreateSpoke:output_type -> google.longrunning.Operation + 88, // 119: google.cloud.networkconnectivity.v1beta.HubService.UpdateSpoke:output_type -> google.longrunning.Operation + 88, // 120: google.cloud.networkconnectivity.v1beta.HubService.RejectHubSpoke:output_type -> google.longrunning.Operation + 88, // 121: google.cloud.networkconnectivity.v1beta.HubService.AcceptHubSpoke:output_type -> google.longrunning.Operation + 88, // 122: google.cloud.networkconnectivity.v1beta.HubService.AcceptSpokeUpdate:output_type -> google.longrunning.Operation + 88, // 123: google.cloud.networkconnectivity.v1beta.HubService.RejectSpokeUpdate:output_type -> google.longrunning.Operation + 88, // 124: google.cloud.networkconnectivity.v1beta.HubService.DeleteSpoke:output_type -> google.longrunning.Operation + 14, // 125: google.cloud.networkconnectivity.v1beta.HubService.GetRouteTable:output_type -> google.cloud.networkconnectivity.v1beta.RouteTable + 15, // 126: google.cloud.networkconnectivity.v1beta.HubService.GetRoute:output_type -> google.cloud.networkconnectivity.v1beta.Route + 47, // 127: google.cloud.networkconnectivity.v1beta.HubService.ListRoutes:output_type -> google.cloud.networkconnectivity.v1beta.ListRoutesResponse + 49, // 128: google.cloud.networkconnectivity.v1beta.HubService.ListRouteTables:output_type -> google.cloud.networkconnectivity.v1beta.ListRouteTablesResponse + 16, // 129: google.cloud.networkconnectivity.v1beta.HubService.GetGroup:output_type -> google.cloud.networkconnectivity.v1beta.Group + 51, // 130: google.cloud.networkconnectivity.v1beta.HubService.ListGroups:output_type -> google.cloud.networkconnectivity.v1beta.ListGroupsResponse + 88, // 131: google.cloud.networkconnectivity.v1beta.HubService.UpdateGroup:output_type -> google.longrunning.Operation + 88, // 132: google.cloud.networkconnectivity.v1beta.HubService.CreateGatewayAdvertisedRoute:output_type -> google.longrunning.Operation + 57, // 133: google.cloud.networkconnectivity.v1beta.HubService.GetGatewayAdvertisedRoute:output_type -> google.cloud.networkconnectivity.v1beta.GatewayAdvertisedRoute + 61, // 134: google.cloud.networkconnectivity.v1beta.HubService.ListGatewayAdvertisedRoutes:output_type -> google.cloud.networkconnectivity.v1beta.ListGatewayAdvertisedRoutesResponse + 88, // 135: google.cloud.networkconnectivity.v1beta.HubService.UpdateGatewayAdvertisedRoute:output_type -> google.longrunning.Operation + 88, // 136: google.cloud.networkconnectivity.v1beta.HubService.DeleteGatewayAdvertisedRoute:output_type -> google.longrunning.Operation + 109, // [109:137] is the sub-list for method output_type + 81, // [81:109] is the sub-list for method input_type + 81, // [81:81] is the sub-list for extension type_name + 81, // [81:81] is the sub-list for extension extendee + 0, // [0:81] is the sub-list for field type_name +} + +func init() { file_google_cloud_networkconnectivity_v1beta_hub_proto_init() } +func file_google_cloud_networkconnectivity_v1beta_hub_proto_init() { + if File_google_cloud_networkconnectivity_v1beta_hub_proto != nil { + return + } + file_google_cloud_networkconnectivity_v1beta_common_proto_init() + file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[0].OneofWrappers = []any{} + file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes[46].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDesc, + NumEnums: 11, + NumMessages: 75, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_networkconnectivity_v1beta_hub_proto_goTypes, + DependencyIndexes: file_google_cloud_networkconnectivity_v1beta_hub_proto_depIdxs, + EnumInfos: file_google_cloud_networkconnectivity_v1beta_hub_proto_enumTypes, + MessageInfos: file_google_cloud_networkconnectivity_v1beta_hub_proto_msgTypes, + }.Build() + File_google_cloud_networkconnectivity_v1beta_hub_proto = out.File + file_google_cloud_networkconnectivity_v1beta_hub_proto_rawDesc = nil + file_google_cloud_networkconnectivity_v1beta_hub_proto_goTypes = nil + file_google_cloud_networkconnectivity_v1beta_hub_proto_depIdxs = nil +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/hub_grpc.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/hub_grpc.pb.go new file mode 100644 index 000000000000..7d5e832e179b --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/hub_grpc.pb.go @@ -0,0 +1,1196 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/hub.proto + +package networkconnectivitypb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + HubService_ListHubs_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListHubs" + HubService_GetHub_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetHub" + HubService_CreateHub_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/CreateHub" + HubService_UpdateHub_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/UpdateHub" + HubService_DeleteHub_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/DeleteHub" + HubService_ListHubSpokes_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListHubSpokes" + HubService_QueryHubStatus_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/QueryHubStatus" + HubService_ListSpokes_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListSpokes" + HubService_GetSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetSpoke" + HubService_CreateSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/CreateSpoke" + HubService_UpdateSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/UpdateSpoke" + HubService_RejectHubSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/RejectHubSpoke" + HubService_AcceptHubSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/AcceptHubSpoke" + HubService_AcceptSpokeUpdate_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/AcceptSpokeUpdate" + HubService_RejectSpokeUpdate_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/RejectSpokeUpdate" + HubService_DeleteSpoke_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/DeleteSpoke" + HubService_GetRouteTable_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetRouteTable" + HubService_GetRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetRoute" + HubService_ListRoutes_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListRoutes" + HubService_ListRouteTables_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListRouteTables" + HubService_GetGroup_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetGroup" + HubService_ListGroups_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListGroups" + HubService_UpdateGroup_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/UpdateGroup" + HubService_CreateGatewayAdvertisedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/CreateGatewayAdvertisedRoute" + HubService_GetGatewayAdvertisedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/GetGatewayAdvertisedRoute" + HubService_ListGatewayAdvertisedRoutes_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/ListGatewayAdvertisedRoutes" + HubService_UpdateGatewayAdvertisedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/UpdateGatewayAdvertisedRoute" + HubService_DeleteGatewayAdvertisedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.HubService/DeleteGatewayAdvertisedRoute" +) + +// HubServiceClient is the client API for HubService 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 HubServiceClient interface { + // Lists the Network Connectivity Center hubs associated with a given project. + ListHubs(ctx context.Context, in *ListHubsRequest, opts ...grpc.CallOption) (*ListHubsResponse, error) + // Gets details about a Network Connectivity Center hub. + GetHub(ctx context.Context, in *GetHubRequest, opts ...grpc.CallOption) (*Hub, error) + // Creates a new Network Connectivity Center hub in the specified project. + CreateHub(ctx context.Context, in *CreateHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the description and/or labels of a Network Connectivity Center + // hub. + UpdateHub(ctx context.Context, in *UpdateHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a Network Connectivity Center hub. + DeleteHub(ctx context.Context, in *DeleteHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists the Network Connectivity Center spokes associated with a + // specified hub and location. The list includes both spokes that are attached + // to the hub and spokes that have been proposed but not yet accepted. + ListHubSpokes(ctx context.Context, in *ListHubSpokesRequest, opts ...grpc.CallOption) (*ListHubSpokesResponse, error) + // Query the Private Service Connect propagation status of a Network + // Connectivity Center hub. + QueryHubStatus(ctx context.Context, in *QueryHubStatusRequest, opts ...grpc.CallOption) (*QueryHubStatusResponse, error) + // Lists the Network Connectivity Center spokes in a specified project and + // location. + ListSpokes(ctx context.Context, in *ListSpokesRequest, opts ...grpc.CallOption) (*ListSpokesResponse, error) + // Gets details about a Network Connectivity Center spoke. + GetSpoke(ctx context.Context, in *GetSpokeRequest, opts ...grpc.CallOption) (*Spoke, error) + // Creates a Network Connectivity Center spoke. + CreateSpoke(ctx context.Context, in *CreateSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a Network Connectivity Center spoke. + UpdateSpoke(ctx context.Context, in *UpdateSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Rejects a Network Connectivity Center spoke from being attached to a hub. + // If the spoke was previously in the `ACTIVE` state, it + // transitions to the `INACTIVE` state and is no longer able to + // connect to other spokes that are attached to the hub. + RejectHubSpoke(ctx context.Context, in *RejectHubSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Accepts a proposal to attach a Network Connectivity Center spoke + // to a hub. + AcceptHubSpoke(ctx context.Context, in *AcceptHubSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Accepts a proposal to update a Network Connectivity Center spoke in a hub. + AcceptSpokeUpdate(ctx context.Context, in *AcceptSpokeUpdateRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Rejects a proposal to update a Network Connectivity Center spoke in a hub. + RejectSpokeUpdate(ctx context.Context, in *RejectSpokeUpdateRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a Network Connectivity Center spoke. + DeleteSpoke(ctx context.Context, in *DeleteSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets details about a Network Connectivity Center route table. + GetRouteTable(ctx context.Context, in *GetRouteTableRequest, opts ...grpc.CallOption) (*RouteTable, error) + // Gets details about the specified route. + GetRoute(ctx context.Context, in *GetRouteRequest, opts ...grpc.CallOption) (*Route, error) + // Lists routes in a given route table. + ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error) + // Lists route tables in a given hub. + ListRouteTables(ctx context.Context, in *ListRouteTablesRequest, opts ...grpc.CallOption) (*ListRouteTablesResponse, error) + // Gets details about a Network Connectivity Center group. + GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*Group, error) + // Lists groups in a given hub. + ListGroups(ctx context.Context, in *ListGroupsRequest, opts ...grpc.CallOption) (*ListGroupsResponse, error) + // Updates the parameters of a Network Connectivity Center group. + UpdateGroup(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Create a GatewayAdvertisedRoute + CreateGatewayAdvertisedRoute(ctx context.Context, in *CreateGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Get a GatewayAdvertisedRoute + GetGatewayAdvertisedRoute(ctx context.Context, in *GetGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*GatewayAdvertisedRoute, error) + // List GatewayAdvertisedRoutes + ListGatewayAdvertisedRoutes(ctx context.Context, in *ListGatewayAdvertisedRoutesRequest, opts ...grpc.CallOption) (*ListGatewayAdvertisedRoutesResponse, error) + // Update a GatewayAdvertisedRoute + UpdateGatewayAdvertisedRoute(ctx context.Context, in *UpdateGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Delete a GatewayAdvertisedRoute + DeleteGatewayAdvertisedRoute(ctx context.Context, in *DeleteGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type hubServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewHubServiceClient(cc grpc.ClientConnInterface) HubServiceClient { + return &hubServiceClient{cc} +} + +func (c *hubServiceClient) ListHubs(ctx context.Context, in *ListHubsRequest, opts ...grpc.CallOption) (*ListHubsResponse, error) { + out := new(ListHubsResponse) + err := c.cc.Invoke(ctx, HubService_ListHubs_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetHub(ctx context.Context, in *GetHubRequest, opts ...grpc.CallOption) (*Hub, error) { + out := new(Hub) + err := c.cc.Invoke(ctx, HubService_GetHub_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) CreateHub(ctx context.Context, in *CreateHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_CreateHub_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) UpdateHub(ctx context.Context, in *UpdateHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_UpdateHub_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) DeleteHub(ctx context.Context, in *DeleteHubRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_DeleteHub_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListHubSpokes(ctx context.Context, in *ListHubSpokesRequest, opts ...grpc.CallOption) (*ListHubSpokesResponse, error) { + out := new(ListHubSpokesResponse) + err := c.cc.Invoke(ctx, HubService_ListHubSpokes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) QueryHubStatus(ctx context.Context, in *QueryHubStatusRequest, opts ...grpc.CallOption) (*QueryHubStatusResponse, error) { + out := new(QueryHubStatusResponse) + err := c.cc.Invoke(ctx, HubService_QueryHubStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListSpokes(ctx context.Context, in *ListSpokesRequest, opts ...grpc.CallOption) (*ListSpokesResponse, error) { + out := new(ListSpokesResponse) + err := c.cc.Invoke(ctx, HubService_ListSpokes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetSpoke(ctx context.Context, in *GetSpokeRequest, opts ...grpc.CallOption) (*Spoke, error) { + out := new(Spoke) + err := c.cc.Invoke(ctx, HubService_GetSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) CreateSpoke(ctx context.Context, in *CreateSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_CreateSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) UpdateSpoke(ctx context.Context, in *UpdateSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_UpdateSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) RejectHubSpoke(ctx context.Context, in *RejectHubSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_RejectHubSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) AcceptHubSpoke(ctx context.Context, in *AcceptHubSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_AcceptHubSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) AcceptSpokeUpdate(ctx context.Context, in *AcceptSpokeUpdateRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_AcceptSpokeUpdate_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) RejectSpokeUpdate(ctx context.Context, in *RejectSpokeUpdateRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_RejectSpokeUpdate_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) DeleteSpoke(ctx context.Context, in *DeleteSpokeRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_DeleteSpoke_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetRouteTable(ctx context.Context, in *GetRouteTableRequest, opts ...grpc.CallOption) (*RouteTable, error) { + out := new(RouteTable) + err := c.cc.Invoke(ctx, HubService_GetRouteTable_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetRoute(ctx context.Context, in *GetRouteRequest, opts ...grpc.CallOption) (*Route, error) { + out := new(Route) + err := c.cc.Invoke(ctx, HubService_GetRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListRoutes(ctx context.Context, in *ListRoutesRequest, opts ...grpc.CallOption) (*ListRoutesResponse, error) { + out := new(ListRoutesResponse) + err := c.cc.Invoke(ctx, HubService_ListRoutes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListRouteTables(ctx context.Context, in *ListRouteTablesRequest, opts ...grpc.CallOption) (*ListRouteTablesResponse, error) { + out := new(ListRouteTablesResponse) + err := c.cc.Invoke(ctx, HubService_ListRouteTables_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetGroup(ctx context.Context, in *GetGroupRequest, opts ...grpc.CallOption) (*Group, error) { + out := new(Group) + err := c.cc.Invoke(ctx, HubService_GetGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListGroups(ctx context.Context, in *ListGroupsRequest, opts ...grpc.CallOption) (*ListGroupsResponse, error) { + out := new(ListGroupsResponse) + err := c.cc.Invoke(ctx, HubService_ListGroups_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) UpdateGroup(ctx context.Context, in *UpdateGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_UpdateGroup_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) CreateGatewayAdvertisedRoute(ctx context.Context, in *CreateGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_CreateGatewayAdvertisedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) GetGatewayAdvertisedRoute(ctx context.Context, in *GetGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*GatewayAdvertisedRoute, error) { + out := new(GatewayAdvertisedRoute) + err := c.cc.Invoke(ctx, HubService_GetGatewayAdvertisedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) ListGatewayAdvertisedRoutes(ctx context.Context, in *ListGatewayAdvertisedRoutesRequest, opts ...grpc.CallOption) (*ListGatewayAdvertisedRoutesResponse, error) { + out := new(ListGatewayAdvertisedRoutesResponse) + err := c.cc.Invoke(ctx, HubService_ListGatewayAdvertisedRoutes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) UpdateGatewayAdvertisedRoute(ctx context.Context, in *UpdateGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_UpdateGatewayAdvertisedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hubServiceClient) DeleteGatewayAdvertisedRoute(ctx context.Context, in *DeleteGatewayAdvertisedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, HubService_DeleteGatewayAdvertisedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HubServiceServer is the server API for HubService service. +// All implementations should embed UnimplementedHubServiceServer +// for forward compatibility +type HubServiceServer interface { + // Lists the Network Connectivity Center hubs associated with a given project. + ListHubs(context.Context, *ListHubsRequest) (*ListHubsResponse, error) + // Gets details about a Network Connectivity Center hub. + GetHub(context.Context, *GetHubRequest) (*Hub, error) + // Creates a new Network Connectivity Center hub in the specified project. + CreateHub(context.Context, *CreateHubRequest) (*longrunningpb.Operation, error) + // Updates the description and/or labels of a Network Connectivity Center + // hub. + UpdateHub(context.Context, *UpdateHubRequest) (*longrunningpb.Operation, error) + // Deletes a Network Connectivity Center hub. + DeleteHub(context.Context, *DeleteHubRequest) (*longrunningpb.Operation, error) + // Lists the Network Connectivity Center spokes associated with a + // specified hub and location. The list includes both spokes that are attached + // to the hub and spokes that have been proposed but not yet accepted. + ListHubSpokes(context.Context, *ListHubSpokesRequest) (*ListHubSpokesResponse, error) + // Query the Private Service Connect propagation status of a Network + // Connectivity Center hub. + QueryHubStatus(context.Context, *QueryHubStatusRequest) (*QueryHubStatusResponse, error) + // Lists the Network Connectivity Center spokes in a specified project and + // location. + ListSpokes(context.Context, *ListSpokesRequest) (*ListSpokesResponse, error) + // Gets details about a Network Connectivity Center spoke. + GetSpoke(context.Context, *GetSpokeRequest) (*Spoke, error) + // Creates a Network Connectivity Center spoke. + CreateSpoke(context.Context, *CreateSpokeRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a Network Connectivity Center spoke. + UpdateSpoke(context.Context, *UpdateSpokeRequest) (*longrunningpb.Operation, error) + // Rejects a Network Connectivity Center spoke from being attached to a hub. + // If the spoke was previously in the `ACTIVE` state, it + // transitions to the `INACTIVE` state and is no longer able to + // connect to other spokes that are attached to the hub. + RejectHubSpoke(context.Context, *RejectHubSpokeRequest) (*longrunningpb.Operation, error) + // Accepts a proposal to attach a Network Connectivity Center spoke + // to a hub. + AcceptHubSpoke(context.Context, *AcceptHubSpokeRequest) (*longrunningpb.Operation, error) + // Accepts a proposal to update a Network Connectivity Center spoke in a hub. + AcceptSpokeUpdate(context.Context, *AcceptSpokeUpdateRequest) (*longrunningpb.Operation, error) + // Rejects a proposal to update a Network Connectivity Center spoke in a hub. + RejectSpokeUpdate(context.Context, *RejectSpokeUpdateRequest) (*longrunningpb.Operation, error) + // Deletes a Network Connectivity Center spoke. + DeleteSpoke(context.Context, *DeleteSpokeRequest) (*longrunningpb.Operation, error) + // Gets details about a Network Connectivity Center route table. + GetRouteTable(context.Context, *GetRouteTableRequest) (*RouteTable, error) + // Gets details about the specified route. + GetRoute(context.Context, *GetRouteRequest) (*Route, error) + // Lists routes in a given route table. + ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error) + // Lists route tables in a given hub. + ListRouteTables(context.Context, *ListRouteTablesRequest) (*ListRouteTablesResponse, error) + // Gets details about a Network Connectivity Center group. + GetGroup(context.Context, *GetGroupRequest) (*Group, error) + // Lists groups in a given hub. + ListGroups(context.Context, *ListGroupsRequest) (*ListGroupsResponse, error) + // Updates the parameters of a Network Connectivity Center group. + UpdateGroup(context.Context, *UpdateGroupRequest) (*longrunningpb.Operation, error) + // Create a GatewayAdvertisedRoute + CreateGatewayAdvertisedRoute(context.Context, *CreateGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) + // Get a GatewayAdvertisedRoute + GetGatewayAdvertisedRoute(context.Context, *GetGatewayAdvertisedRouteRequest) (*GatewayAdvertisedRoute, error) + // List GatewayAdvertisedRoutes + ListGatewayAdvertisedRoutes(context.Context, *ListGatewayAdvertisedRoutesRequest) (*ListGatewayAdvertisedRoutesResponse, error) + // Update a GatewayAdvertisedRoute + UpdateGatewayAdvertisedRoute(context.Context, *UpdateGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) + // Delete a GatewayAdvertisedRoute + DeleteGatewayAdvertisedRoute(context.Context, *DeleteGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedHubServiceServer should be embedded to have forward compatible implementations. +type UnimplementedHubServiceServer struct { +} + +func (UnimplementedHubServiceServer) ListHubs(context.Context, *ListHubsRequest) (*ListHubsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHubs not implemented") +} +func (UnimplementedHubServiceServer) GetHub(context.Context, *GetHubRequest) (*Hub, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetHub not implemented") +} +func (UnimplementedHubServiceServer) CreateHub(context.Context, *CreateHubRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateHub not implemented") +} +func (UnimplementedHubServiceServer) UpdateHub(context.Context, *UpdateHubRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateHub not implemented") +} +func (UnimplementedHubServiceServer) DeleteHub(context.Context, *DeleteHubRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteHub not implemented") +} +func (UnimplementedHubServiceServer) ListHubSpokes(context.Context, *ListHubSpokesRequest) (*ListHubSpokesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListHubSpokes not implemented") +} +func (UnimplementedHubServiceServer) QueryHubStatus(context.Context, *QueryHubStatusRequest) (*QueryHubStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method QueryHubStatus not implemented") +} +func (UnimplementedHubServiceServer) ListSpokes(context.Context, *ListSpokesRequest) (*ListSpokesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSpokes not implemented") +} +func (UnimplementedHubServiceServer) GetSpoke(context.Context, *GetSpokeRequest) (*Spoke, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSpoke not implemented") +} +func (UnimplementedHubServiceServer) CreateSpoke(context.Context, *CreateSpokeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSpoke not implemented") +} +func (UnimplementedHubServiceServer) UpdateSpoke(context.Context, *UpdateSpokeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSpoke not implemented") +} +func (UnimplementedHubServiceServer) RejectHubSpoke(context.Context, *RejectHubSpokeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RejectHubSpoke not implemented") +} +func (UnimplementedHubServiceServer) AcceptHubSpoke(context.Context, *AcceptHubSpokeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptHubSpoke not implemented") +} +func (UnimplementedHubServiceServer) AcceptSpokeUpdate(context.Context, *AcceptSpokeUpdateRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcceptSpokeUpdate not implemented") +} +func (UnimplementedHubServiceServer) RejectSpokeUpdate(context.Context, *RejectSpokeUpdateRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RejectSpokeUpdate not implemented") +} +func (UnimplementedHubServiceServer) DeleteSpoke(context.Context, *DeleteSpokeRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSpoke not implemented") +} +func (UnimplementedHubServiceServer) GetRouteTable(context.Context, *GetRouteTableRequest) (*RouteTable, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRouteTable not implemented") +} +func (UnimplementedHubServiceServer) GetRoute(context.Context, *GetRouteRequest) (*Route, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRoute not implemented") +} +func (UnimplementedHubServiceServer) ListRoutes(context.Context, *ListRoutesRequest) (*ListRoutesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRoutes not implemented") +} +func (UnimplementedHubServiceServer) ListRouteTables(context.Context, *ListRouteTablesRequest) (*ListRouteTablesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRouteTables not implemented") +} +func (UnimplementedHubServiceServer) GetGroup(context.Context, *GetGroupRequest) (*Group, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") +} +func (UnimplementedHubServiceServer) ListGroups(context.Context, *ListGroupsRequest) (*ListGroupsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListGroups not implemented") +} +func (UnimplementedHubServiceServer) UpdateGroup(context.Context, *UpdateGroupRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGroup not implemented") +} +func (UnimplementedHubServiceServer) CreateGatewayAdvertisedRoute(context.Context, *CreateGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGatewayAdvertisedRoute not implemented") +} +func (UnimplementedHubServiceServer) GetGatewayAdvertisedRoute(context.Context, *GetGatewayAdvertisedRouteRequest) (*GatewayAdvertisedRoute, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGatewayAdvertisedRoute not implemented") +} +func (UnimplementedHubServiceServer) ListGatewayAdvertisedRoutes(context.Context, *ListGatewayAdvertisedRoutesRequest) (*ListGatewayAdvertisedRoutesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListGatewayAdvertisedRoutes not implemented") +} +func (UnimplementedHubServiceServer) UpdateGatewayAdvertisedRoute(context.Context, *UpdateGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateGatewayAdvertisedRoute not implemented") +} +func (UnimplementedHubServiceServer) DeleteGatewayAdvertisedRoute(context.Context, *DeleteGatewayAdvertisedRouteRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteGatewayAdvertisedRoute not implemented") +} + +// UnsafeHubServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to HubServiceServer will +// result in compilation errors. +type UnsafeHubServiceServer interface { + mustEmbedUnimplementedHubServiceServer() +} + +func RegisterHubServiceServer(s grpc.ServiceRegistrar, srv HubServiceServer) { + s.RegisterService(&HubService_ServiceDesc, srv) +} + +func _HubService_ListHubs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListHubsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListHubs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListHubs_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListHubs(ctx, req.(*ListHubsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetHub_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetHubRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetHub(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetHub_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetHub(ctx, req.(*GetHubRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_CreateHub_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateHubRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).CreateHub(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_CreateHub_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).CreateHub(ctx, req.(*CreateHubRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_UpdateHub_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateHubRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).UpdateHub(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_UpdateHub_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).UpdateHub(ctx, req.(*UpdateHubRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_DeleteHub_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteHubRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).DeleteHub(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_DeleteHub_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).DeleteHub(ctx, req.(*DeleteHubRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListHubSpokes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListHubSpokesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListHubSpokes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListHubSpokes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListHubSpokes(ctx, req.(*ListHubSpokesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_QueryHubStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueryHubStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).QueryHubStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_QueryHubStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).QueryHubStatus(ctx, req.(*QueryHubStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListSpokes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSpokesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListSpokes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListSpokes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListSpokes(ctx, req.(*ListSpokesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetSpoke(ctx, req.(*GetSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_CreateSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).CreateSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_CreateSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).CreateSpoke(ctx, req.(*CreateSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_UpdateSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).UpdateSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_UpdateSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).UpdateSpoke(ctx, req.(*UpdateSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_RejectHubSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RejectHubSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).RejectHubSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_RejectHubSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).RejectHubSpoke(ctx, req.(*RejectHubSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_AcceptHubSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptHubSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).AcceptHubSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_AcceptHubSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).AcceptHubSpoke(ctx, req.(*AcceptHubSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_AcceptSpokeUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcceptSpokeUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).AcceptSpokeUpdate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_AcceptSpokeUpdate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).AcceptSpokeUpdate(ctx, req.(*AcceptSpokeUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_RejectSpokeUpdate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RejectSpokeUpdateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).RejectSpokeUpdate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_RejectSpokeUpdate_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).RejectSpokeUpdate(ctx, req.(*RejectSpokeUpdateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_DeleteSpoke_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSpokeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).DeleteSpoke(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_DeleteSpoke_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).DeleteSpoke(ctx, req.(*DeleteSpokeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetRouteTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRouteTableRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetRouteTable(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetRouteTable_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetRouteTable(ctx, req.(*GetRouteTableRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetRoute(ctx, req.(*GetRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRoutesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListRoutes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListRoutes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListRoutes(ctx, req.(*ListRoutesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListRouteTables_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRouteTablesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListRouteTables(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListRouteTables_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListRouteTables(ctx, req.(*ListRouteTablesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetGroup(ctx, req.(*GetGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListGroups_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListGroups(ctx, req.(*ListGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_UpdateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).UpdateGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_UpdateGroup_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).UpdateGroup(ctx, req.(*UpdateGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_CreateGatewayAdvertisedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateGatewayAdvertisedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).CreateGatewayAdvertisedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_CreateGatewayAdvertisedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).CreateGatewayAdvertisedRoute(ctx, req.(*CreateGatewayAdvertisedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_GetGatewayAdvertisedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGatewayAdvertisedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).GetGatewayAdvertisedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_GetGatewayAdvertisedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).GetGatewayAdvertisedRoute(ctx, req.(*GetGatewayAdvertisedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_ListGatewayAdvertisedRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListGatewayAdvertisedRoutesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).ListGatewayAdvertisedRoutes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_ListGatewayAdvertisedRoutes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).ListGatewayAdvertisedRoutes(ctx, req.(*ListGatewayAdvertisedRoutesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_UpdateGatewayAdvertisedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateGatewayAdvertisedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).UpdateGatewayAdvertisedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_UpdateGatewayAdvertisedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).UpdateGatewayAdvertisedRoute(ctx, req.(*UpdateGatewayAdvertisedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _HubService_DeleteGatewayAdvertisedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteGatewayAdvertisedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HubServiceServer).DeleteGatewayAdvertisedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: HubService_DeleteGatewayAdvertisedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HubServiceServer).DeleteGatewayAdvertisedRoute(ctx, req.(*DeleteGatewayAdvertisedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// HubService_ServiceDesc is the grpc.ServiceDesc for HubService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var HubService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.networkconnectivity.v1beta.HubService", + HandlerType: (*HubServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListHubs", + Handler: _HubService_ListHubs_Handler, + }, + { + MethodName: "GetHub", + Handler: _HubService_GetHub_Handler, + }, + { + MethodName: "CreateHub", + Handler: _HubService_CreateHub_Handler, + }, + { + MethodName: "UpdateHub", + Handler: _HubService_UpdateHub_Handler, + }, + { + MethodName: "DeleteHub", + Handler: _HubService_DeleteHub_Handler, + }, + { + MethodName: "ListHubSpokes", + Handler: _HubService_ListHubSpokes_Handler, + }, + { + MethodName: "QueryHubStatus", + Handler: _HubService_QueryHubStatus_Handler, + }, + { + MethodName: "ListSpokes", + Handler: _HubService_ListSpokes_Handler, + }, + { + MethodName: "GetSpoke", + Handler: _HubService_GetSpoke_Handler, + }, + { + MethodName: "CreateSpoke", + Handler: _HubService_CreateSpoke_Handler, + }, + { + MethodName: "UpdateSpoke", + Handler: _HubService_UpdateSpoke_Handler, + }, + { + MethodName: "RejectHubSpoke", + Handler: _HubService_RejectHubSpoke_Handler, + }, + { + MethodName: "AcceptHubSpoke", + Handler: _HubService_AcceptHubSpoke_Handler, + }, + { + MethodName: "AcceptSpokeUpdate", + Handler: _HubService_AcceptSpokeUpdate_Handler, + }, + { + MethodName: "RejectSpokeUpdate", + Handler: _HubService_RejectSpokeUpdate_Handler, + }, + { + MethodName: "DeleteSpoke", + Handler: _HubService_DeleteSpoke_Handler, + }, + { + MethodName: "GetRouteTable", + Handler: _HubService_GetRouteTable_Handler, + }, + { + MethodName: "GetRoute", + Handler: _HubService_GetRoute_Handler, + }, + { + MethodName: "ListRoutes", + Handler: _HubService_ListRoutes_Handler, + }, + { + MethodName: "ListRouteTables", + Handler: _HubService_ListRouteTables_Handler, + }, + { + MethodName: "GetGroup", + Handler: _HubService_GetGroup_Handler, + }, + { + MethodName: "ListGroups", + Handler: _HubService_ListGroups_Handler, + }, + { + MethodName: "UpdateGroup", + Handler: _HubService_UpdateGroup_Handler, + }, + { + MethodName: "CreateGatewayAdvertisedRoute", + Handler: _HubService_CreateGatewayAdvertisedRoute_Handler, + }, + { + MethodName: "GetGatewayAdvertisedRoute", + Handler: _HubService_GetGatewayAdvertisedRoute_Handler, + }, + { + MethodName: "ListGatewayAdvertisedRoutes", + Handler: _HubService_ListGatewayAdvertisedRoutes_Handler, + }, + { + MethodName: "UpdateGatewayAdvertisedRoute", + Handler: _HubService_UpdateGatewayAdvertisedRoute_Handler, + }, + { + MethodName: "DeleteGatewayAdvertisedRoute", + Handler: _HubService_DeleteGatewayAdvertisedRoute_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/networkconnectivity/v1beta/hub.proto", +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing.pb.go new file mode 100644 index 000000000000..852ef5d996f3 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing.pb.go @@ -0,0 +1,1477 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/policy_based_routing.proto + +package networkconnectivitypb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + 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) +) + +// The other routing cases. +type PolicyBasedRoute_OtherRoutes int32 + +const ( + // Default value. + PolicyBasedRoute_OTHER_ROUTES_UNSPECIFIED PolicyBasedRoute_OtherRoutes = 0 + // Use the routes from the default routing tables (system-generated routes, + // custom routes, peering route) to determine the next hop. This effectively + // excludes matching packets being applied on other PBRs with a lower + // priority. + PolicyBasedRoute_DEFAULT_ROUTING PolicyBasedRoute_OtherRoutes = 1 +) + +// Enum value maps for PolicyBasedRoute_OtherRoutes. +var ( + PolicyBasedRoute_OtherRoutes_name = map[int32]string{ + 0: "OTHER_ROUTES_UNSPECIFIED", + 1: "DEFAULT_ROUTING", + } + PolicyBasedRoute_OtherRoutes_value = map[string]int32{ + "OTHER_ROUTES_UNSPECIFIED": 0, + "DEFAULT_ROUTING": 1, + } +) + +func (x PolicyBasedRoute_OtherRoutes) Enum() *PolicyBasedRoute_OtherRoutes { + p := new(PolicyBasedRoute_OtherRoutes) + *p = x + return p +} + +func (x PolicyBasedRoute_OtherRoutes) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PolicyBasedRoute_OtherRoutes) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[0].Descriptor() +} + +func (PolicyBasedRoute_OtherRoutes) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[0] +} + +func (x PolicyBasedRoute_OtherRoutes) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyBasedRoute_OtherRoutes.Descriptor instead. +func (PolicyBasedRoute_OtherRoutes) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 0} +} + +// The internet protocol version. +type PolicyBasedRoute_Filter_ProtocolVersion int32 + +const ( + // Default value. + PolicyBasedRoute_Filter_PROTOCOL_VERSION_UNSPECIFIED PolicyBasedRoute_Filter_ProtocolVersion = 0 + // The PBR is for IPv4 internet protocol traffic. + PolicyBasedRoute_Filter_IPV4 PolicyBasedRoute_Filter_ProtocolVersion = 1 + // The PBR is for IPv6 internet protocol traffic. + PolicyBasedRoute_Filter_IPV6 PolicyBasedRoute_Filter_ProtocolVersion = 2 +) + +// Enum value maps for PolicyBasedRoute_Filter_ProtocolVersion. +var ( + PolicyBasedRoute_Filter_ProtocolVersion_name = map[int32]string{ + 0: "PROTOCOL_VERSION_UNSPECIFIED", + 1: "IPV4", + 2: "IPV6", + } + PolicyBasedRoute_Filter_ProtocolVersion_value = map[string]int32{ + "PROTOCOL_VERSION_UNSPECIFIED": 0, + "IPV4": 1, + "IPV6": 2, + } +) + +func (x PolicyBasedRoute_Filter_ProtocolVersion) Enum() *PolicyBasedRoute_Filter_ProtocolVersion { + p := new(PolicyBasedRoute_Filter_ProtocolVersion) + *p = x + return p +} + +func (x PolicyBasedRoute_Filter_ProtocolVersion) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PolicyBasedRoute_Filter_ProtocolVersion) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[1].Descriptor() +} + +func (PolicyBasedRoute_Filter_ProtocolVersion) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[1] +} + +func (x PolicyBasedRoute_Filter_ProtocolVersion) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyBasedRoute_Filter_ProtocolVersion.Descriptor instead. +func (PolicyBasedRoute_Filter_ProtocolVersion) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 2, 0} +} + +// Warning code for policy-based routing. Expect to add values in the +// future. +type PolicyBasedRoute_Warnings_Code int32 + +const ( + // Default value. + PolicyBasedRoute_Warnings_WARNING_UNSPECIFIED PolicyBasedRoute_Warnings_Code = 0 + // The policy-based route is not active and functioning. Common causes are + // that the dependent network was deleted or the resource project was + // turned off. + PolicyBasedRoute_Warnings_RESOURCE_NOT_ACTIVE PolicyBasedRoute_Warnings_Code = 1 + // The policy-based route is being modified (e.g. created/deleted) at this + // time. + PolicyBasedRoute_Warnings_RESOURCE_BEING_MODIFIED PolicyBasedRoute_Warnings_Code = 2 +) + +// Enum value maps for PolicyBasedRoute_Warnings_Code. +var ( + PolicyBasedRoute_Warnings_Code_name = map[int32]string{ + 0: "WARNING_UNSPECIFIED", + 1: "RESOURCE_NOT_ACTIVE", + 2: "RESOURCE_BEING_MODIFIED", + } + PolicyBasedRoute_Warnings_Code_value = map[string]int32{ + "WARNING_UNSPECIFIED": 0, + "RESOURCE_NOT_ACTIVE": 1, + "RESOURCE_BEING_MODIFIED": 2, + } +) + +func (x PolicyBasedRoute_Warnings_Code) Enum() *PolicyBasedRoute_Warnings_Code { + p := new(PolicyBasedRoute_Warnings_Code) + *p = x + return p +} + +func (x PolicyBasedRoute_Warnings_Code) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PolicyBasedRoute_Warnings_Code) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[2].Descriptor() +} + +func (PolicyBasedRoute_Warnings_Code) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes[2] +} + +func (x PolicyBasedRoute_Warnings_Code) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PolicyBasedRoute_Warnings_Code.Descriptor instead. +func (PolicyBasedRoute_Warnings_Code) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 3, 0} +} + +// Policy-based routes route L4 network traffic based on not just destination IP +// address, but also source IP address, protocol, and more. If a policy-based +// route conflicts with other types of routes, the policy-based route always +// takes precedence. +type PolicyBasedRoute struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Target specifies network endpoints that this policy-based route applies to. + // If no target is specified, the PBR will be installed on all network + // endpoints (e.g. VMs, VPNs, and Interconnects) in the VPC. + // + // Types that are assignable to Target: + // + // *PolicyBasedRoute_VirtualMachine_ + // *PolicyBasedRoute_InterconnectAttachment_ + Target isPolicyBasedRoute_Target `protobuf_oneof:"target"` + // Types that are assignable to NextHop: + // + // *PolicyBasedRoute_NextHopIlbIp + // *PolicyBasedRoute_NextHopOtherRoutes + NextHop isPolicyBasedRoute_NextHop `protobuf_oneof:"next_hop"` + // Immutable. Identifier. A unique name of the resource in the form of + // `projects/{project_number}/locations/global/PolicyBasedRoutes/{policy_based_route_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Time when the policy-based route was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Time when the policy-based route was updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // User-defined labels. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. An optional description of this resource. Provide this field when + // you create the resource. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // Required. Fully-qualified URL of the network that this route applies to, + // for example: projects/my-project/global/networks/my-network. + Network string `protobuf:"bytes,6,opt,name=network,proto3" json:"network,omitempty"` + // Required. The filter to match L4 traffic. + Filter *PolicyBasedRoute_Filter `protobuf:"bytes,10,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. The priority of this policy-based route. Priority is used to + // break ties in cases where there are more than one matching policy-based + // routes found. In cases where multiple policy-based routes are matched, the + // one with the lowest-numbered priority value wins. The default value is + // 1000. The priority value must be from 1 to 65535, inclusive. + Priority int32 `protobuf:"varint,11,opt,name=priority,proto3" json:"priority,omitempty"` + // Output only. If potential misconfigurations are detected for this route, + // this field will be populated with warning messages. + Warnings []*PolicyBasedRoute_Warnings `protobuf:"bytes,14,rep,name=warnings,proto3" json:"warnings,omitempty"` + // Output only. Server-defined fully-qualified URL for this resource. + SelfLink string `protobuf:"bytes,15,opt,name=self_link,json=selfLink,proto3" json:"self_link,omitempty"` + // Output only. Type of this resource. Always + // networkconnectivity#policyBasedRoute for policy-based Route resources. + Kind string `protobuf:"bytes,16,opt,name=kind,proto3" json:"kind,omitempty"` +} + +func (x *PolicyBasedRoute) Reset() { + *x = PolicyBasedRoute{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PolicyBasedRoute) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PolicyBasedRoute) ProtoMessage() {} + +func (x *PolicyBasedRoute) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 PolicyBasedRoute.ProtoReflect.Descriptor instead. +func (*PolicyBasedRoute) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0} +} + +func (m *PolicyBasedRoute) GetTarget() isPolicyBasedRoute_Target { + if m != nil { + return m.Target + } + return nil +} + +func (x *PolicyBasedRoute) GetVirtualMachine() *PolicyBasedRoute_VirtualMachine { + if x, ok := x.GetTarget().(*PolicyBasedRoute_VirtualMachine_); ok { + return x.VirtualMachine + } + return nil +} + +func (x *PolicyBasedRoute) GetInterconnectAttachment() *PolicyBasedRoute_InterconnectAttachment { + if x, ok := x.GetTarget().(*PolicyBasedRoute_InterconnectAttachment_); ok { + return x.InterconnectAttachment + } + return nil +} + +func (m *PolicyBasedRoute) GetNextHop() isPolicyBasedRoute_NextHop { + if m != nil { + return m.NextHop + } + return nil +} + +func (x *PolicyBasedRoute) GetNextHopIlbIp() string { + if x, ok := x.GetNextHop().(*PolicyBasedRoute_NextHopIlbIp); ok { + return x.NextHopIlbIp + } + return "" +} + +func (x *PolicyBasedRoute) GetNextHopOtherRoutes() PolicyBasedRoute_OtherRoutes { + if x, ok := x.GetNextHop().(*PolicyBasedRoute_NextHopOtherRoutes); ok { + return x.NextHopOtherRoutes + } + return PolicyBasedRoute_OTHER_ROUTES_UNSPECIFIED +} + +func (x *PolicyBasedRoute) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *PolicyBasedRoute) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *PolicyBasedRoute) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *PolicyBasedRoute) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *PolicyBasedRoute) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *PolicyBasedRoute) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *PolicyBasedRoute) GetFilter() *PolicyBasedRoute_Filter { + if x != nil { + return x.Filter + } + return nil +} + +func (x *PolicyBasedRoute) GetPriority() int32 { + if x != nil { + return x.Priority + } + return 0 +} + +func (x *PolicyBasedRoute) GetWarnings() []*PolicyBasedRoute_Warnings { + if x != nil { + return x.Warnings + } + return nil +} + +func (x *PolicyBasedRoute) GetSelfLink() string { + if x != nil { + return x.SelfLink + } + return "" +} + +func (x *PolicyBasedRoute) GetKind() string { + if x != nil { + return x.Kind + } + return "" +} + +type isPolicyBasedRoute_Target interface { + isPolicyBasedRoute_Target() +} + +type PolicyBasedRoute_VirtualMachine_ struct { + // Optional. VM instances that this policy-based route applies to. + VirtualMachine *PolicyBasedRoute_VirtualMachine `protobuf:"bytes,18,opt,name=virtual_machine,json=virtualMachine,proto3,oneof"` +} + +type PolicyBasedRoute_InterconnectAttachment_ struct { + // Optional. The interconnect attachments that this policy-based route + // applies to. + InterconnectAttachment *PolicyBasedRoute_InterconnectAttachment `protobuf:"bytes,9,opt,name=interconnect_attachment,json=interconnectAttachment,proto3,oneof"` +} + +func (*PolicyBasedRoute_VirtualMachine_) isPolicyBasedRoute_Target() {} + +func (*PolicyBasedRoute_InterconnectAttachment_) isPolicyBasedRoute_Target() {} + +type isPolicyBasedRoute_NextHop interface { + isPolicyBasedRoute_NextHop() +} + +type PolicyBasedRoute_NextHopIlbIp struct { + // Optional. The IP address of a global-access-enabled L4 ILB that is the + // next hop for matching packets. For this version, only nextHopIlbIp is + // supported. + NextHopIlbIp string `protobuf:"bytes,12,opt,name=next_hop_ilb_ip,json=nextHopIlbIp,proto3,oneof"` +} + +type PolicyBasedRoute_NextHopOtherRoutes struct { + // Optional. Other routes that will be referenced to determine the next hop + // of the packet. + NextHopOtherRoutes PolicyBasedRoute_OtherRoutes `protobuf:"varint,21,opt,name=next_hop_other_routes,json=nextHopOtherRoutes,proto3,enum=google.cloud.networkconnectivity.v1beta.PolicyBasedRoute_OtherRoutes,oneof"` +} + +func (*PolicyBasedRoute_NextHopIlbIp) isPolicyBasedRoute_NextHop() {} + +func (*PolicyBasedRoute_NextHopOtherRoutes) isPolicyBasedRoute_NextHop() {} + +// Request for +// [PolicyBasedRoutingService.ListPolicyBasedRoutes][google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.ListPolicyBasedRoutes] +// method. +type ListPolicyBasedRoutesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of results per page that should be returned. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A filter expression that filters the results listed in the response. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Sort the results by a certain order. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListPolicyBasedRoutesRequest) Reset() { + *x = ListPolicyBasedRoutesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPolicyBasedRoutesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPolicyBasedRoutesRequest) ProtoMessage() {} + +func (x *ListPolicyBasedRoutesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 ListPolicyBasedRoutesRequest.ProtoReflect.Descriptor instead. +func (*ListPolicyBasedRoutesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{1} +} + +func (x *ListPolicyBasedRoutesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListPolicyBasedRoutesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListPolicyBasedRoutesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListPolicyBasedRoutesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListPolicyBasedRoutesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response for +// [PolicyBasedRoutingService.ListPolicyBasedRoutes][google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.ListPolicyBasedRoutes] +// method. +type ListPolicyBasedRoutesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Policy-based routes to be returned. + PolicyBasedRoutes []*PolicyBasedRoute `protobuf:"bytes,1,rep,name=policy_based_routes,json=policyBasedRoutes,proto3" json:"policy_based_routes,omitempty"` + // The next pagination token in the List response. It should be used as + // page_token for the following request. An empty value means no more result. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListPolicyBasedRoutesResponse) Reset() { + *x = ListPolicyBasedRoutesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPolicyBasedRoutesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPolicyBasedRoutesResponse) ProtoMessage() {} + +func (x *ListPolicyBasedRoutesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 ListPolicyBasedRoutesResponse.ProtoReflect.Descriptor instead. +func (*ListPolicyBasedRoutesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{2} +} + +func (x *ListPolicyBasedRoutesResponse) GetPolicyBasedRoutes() []*PolicyBasedRoute { + if x != nil { + return x.PolicyBasedRoutes + } + return nil +} + +func (x *ListPolicyBasedRoutesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListPolicyBasedRoutesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request for +// [PolicyBasedRoutingService.GetPolicyBasedRoute][google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.GetPolicyBasedRoute] +// method. +type GetPolicyBasedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the PolicyBasedRoute resource to get. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetPolicyBasedRouteRequest) Reset() { + *x = GetPolicyBasedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPolicyBasedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPolicyBasedRouteRequest) ProtoMessage() {} + +func (x *GetPolicyBasedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 GetPolicyBasedRouteRequest.ProtoReflect.Descriptor instead. +func (*GetPolicyBasedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{3} +} + +func (x *GetPolicyBasedRouteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request for +// [PolicyBasedRoutingService.CreatePolicyBasedRoute][google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.CreatePolicyBasedRoute] +// method. +type CreatePolicyBasedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource's name of the PolicyBasedRoute. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Unique id for the policy-based route to create. Provided by the + // client when the resource is created. The name must comply with + // https://google.aip.dev/122#resource-id-segments. Specifically, the name + // must be 1-63 characters long and match the regular expression + // [a-z]([a-z0-9-]*[a-z0-9])?. The first character must be a lowercase letter, + // and all following characters (except for the last character) must be a + // dash, lowercase letter, or digit. The last character must be a lowercase + // letter or digit. + PolicyBasedRouteId string `protobuf:"bytes,2,opt,name=policy_based_route_id,json=policyBasedRouteId,proto3" json:"policy_based_route_id,omitempty"` + // Required. Initial values for a new policy-based route. + PolicyBasedRoute *PolicyBasedRoute `protobuf:"bytes,3,opt,name=policy_based_route,json=policyBasedRoute,proto3" json:"policy_based_route,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server knows to + // ignore the request if it has already been completed. The server guarantees + // 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, ignores the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreatePolicyBasedRouteRequest) Reset() { + *x = CreatePolicyBasedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreatePolicyBasedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreatePolicyBasedRouteRequest) ProtoMessage() {} + +func (x *CreatePolicyBasedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 CreatePolicyBasedRouteRequest.ProtoReflect.Descriptor instead. +func (*CreatePolicyBasedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{4} +} + +func (x *CreatePolicyBasedRouteRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreatePolicyBasedRouteRequest) GetPolicyBasedRouteId() string { + if x != nil { + return x.PolicyBasedRouteId + } + return "" +} + +func (x *CreatePolicyBasedRouteRequest) GetPolicyBasedRoute() *PolicyBasedRoute { + if x != nil { + return x.PolicyBasedRoute + } + return nil +} + +func (x *CreatePolicyBasedRouteRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request for +// [PolicyBasedRoutingService.DeletePolicyBasedRoute][google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.DeletePolicyBasedRoute] +// method. +type DeletePolicyBasedRouteRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the policy-based route resource to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server knows to + // ignore the request if it has already been completed. The server guarantees + // that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, ignores the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeletePolicyBasedRouteRequest) Reset() { + *x = DeletePolicyBasedRouteRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeletePolicyBasedRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeletePolicyBasedRouteRequest) ProtoMessage() {} + +func (x *DeletePolicyBasedRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 DeletePolicyBasedRouteRequest.ProtoReflect.Descriptor instead. +func (*DeletePolicyBasedRouteRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{5} +} + +func (x *DeletePolicyBasedRouteRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeletePolicyBasedRouteRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// VM instances that this policy-based route applies to. +type PolicyBasedRoute_VirtualMachine struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. A list of VM instance tags that this policy-based route applies + // to. VM instances that have ANY of tags specified here installs this PBR. + Tags []string `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"` +} + +func (x *PolicyBasedRoute_VirtualMachine) Reset() { + *x = PolicyBasedRoute_VirtualMachine{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PolicyBasedRoute_VirtualMachine) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PolicyBasedRoute_VirtualMachine) ProtoMessage() {} + +func (x *PolicyBasedRoute_VirtualMachine) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 PolicyBasedRoute_VirtualMachine.ProtoReflect.Descriptor instead. +func (*PolicyBasedRoute_VirtualMachine) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *PolicyBasedRoute_VirtualMachine) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + +// InterconnectAttachment that this route applies to. +type PolicyBasedRoute_InterconnectAttachment struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Cloud region to install this policy-based route on interconnect + // attachment. Use `all` to install it on all interconnect attachments. + Region string `protobuf:"bytes,1,opt,name=region,proto3" json:"region,omitempty"` +} + +func (x *PolicyBasedRoute_InterconnectAttachment) Reset() { + *x = PolicyBasedRoute_InterconnectAttachment{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PolicyBasedRoute_InterconnectAttachment) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PolicyBasedRoute_InterconnectAttachment) ProtoMessage() {} + +func (x *PolicyBasedRoute_InterconnectAttachment) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 PolicyBasedRoute_InterconnectAttachment.ProtoReflect.Descriptor instead. +func (*PolicyBasedRoute_InterconnectAttachment) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *PolicyBasedRoute_InterconnectAttachment) GetRegion() string { + if x != nil { + return x.Region + } + return "" +} + +// Filter matches L4 traffic. +type PolicyBasedRoute_Filter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. The IP protocol that this policy-based route applies to. Valid + // values are 'TCP', 'UDP', and 'ALL'. Default is 'ALL'. + IpProtocol string `protobuf:"bytes,1,opt,name=ip_protocol,json=ipProtocol,proto3" json:"ip_protocol,omitempty"` + // Optional. The source IP range of outgoing packets that this policy-based + // route applies to. Default is "0.0.0.0/0" if protocol version is IPv4 and + // "::/0" if protocol version is IPv6. + SrcRange string `protobuf:"bytes,2,opt,name=src_range,json=srcRange,proto3" json:"src_range,omitempty"` + // Optional. The destination IP range of outgoing packets that this + // policy-based route applies to. Default is "0.0.0.0/0" if protocol version + // is IPv4 and "::/0" if protocol version is IPv6. + DestRange string `protobuf:"bytes,3,opt,name=dest_range,json=destRange,proto3" json:"dest_range,omitempty"` + // Required. Internet protocol versions this policy-based route applies to. + // IPV4 and IPV6 is supported. + ProtocolVersion PolicyBasedRoute_Filter_ProtocolVersion `protobuf:"varint,6,opt,name=protocol_version,json=protocolVersion,proto3,enum=google.cloud.networkconnectivity.v1beta.PolicyBasedRoute_Filter_ProtocolVersion" json:"protocol_version,omitempty"` +} + +func (x *PolicyBasedRoute_Filter) Reset() { + *x = PolicyBasedRoute_Filter{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PolicyBasedRoute_Filter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PolicyBasedRoute_Filter) ProtoMessage() {} + +func (x *PolicyBasedRoute_Filter) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 PolicyBasedRoute_Filter.ProtoReflect.Descriptor instead. +func (*PolicyBasedRoute_Filter) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *PolicyBasedRoute_Filter) GetIpProtocol() string { + if x != nil { + return x.IpProtocol + } + return "" +} + +func (x *PolicyBasedRoute_Filter) GetSrcRange() string { + if x != nil { + return x.SrcRange + } + return "" +} + +func (x *PolicyBasedRoute_Filter) GetDestRange() string { + if x != nil { + return x.DestRange + } + return "" +} + +func (x *PolicyBasedRoute_Filter) GetProtocolVersion() PolicyBasedRoute_Filter_ProtocolVersion { + if x != nil { + return x.ProtocolVersion + } + return PolicyBasedRoute_Filter_PROTOCOL_VERSION_UNSPECIFIED +} + +// Informational warning message. +type PolicyBasedRoute_Warnings struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. A warning code, if applicable. + Code PolicyBasedRoute_Warnings_Code `protobuf:"varint,1,opt,name=code,proto3,enum=google.cloud.networkconnectivity.v1beta.PolicyBasedRoute_Warnings_Code" json:"code,omitempty"` + // Output only. Metadata about this warning in key: value format. The key + // should provides more detail on the warning being returned. For example, + // for warnings where there are no results in a list request for a + // particular zone, this key might be scope and the key value might be the + // zone name. Other examples might be a key indicating a deprecated resource + // and a suggested replacement. + Data map[string]string `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. A human-readable description of the warning code. + WarningMessage string `protobuf:"bytes,3,opt,name=warning_message,json=warningMessage,proto3" json:"warning_message,omitempty"` +} + +func (x *PolicyBasedRoute_Warnings) Reset() { + *x = PolicyBasedRoute_Warnings{} + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PolicyBasedRoute_Warnings) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PolicyBasedRoute_Warnings) ProtoMessage() {} + +func (x *PolicyBasedRoute_Warnings) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_policy_based_routing_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 PolicyBasedRoute_Warnings.ProtoReflect.Descriptor instead. +func (*PolicyBasedRoute_Warnings) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *PolicyBasedRoute_Warnings) GetCode() PolicyBasedRoute_Warnings_Code { + if x != nil { + return x.Code + } + return PolicyBasedRoute_Warnings_WARNING_UNSPECIFIED +} + +func (x *PolicyBasedRoute_Warnings) GetData() map[string]string { + if x != nil { + return x.Data + } + return nil +} + +func (x *PolicyBasedRoute_Warnings) GetWarningMessage() string { + if x != nil { + return x.WarningMessage + } + return "" +} + +var File_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto protoreflect.FileDescriptor + +var file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDesc = []byte{ + 0x0a, 0x42, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 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, 0xaa, 0x11, 0x0a, 0x10, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x78, + 0x0a, 0x0f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, + 0x6c, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x17, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x00, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x69, 0x6c, 0x62, 0x5f, 0x69, 0x70, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x0c, 0x6e, 0x65, 0x78, + 0x74, 0x48, 0x6f, 0x70, 0x49, 0x6c, 0x62, 0x49, 0x70, 0x12, 0x7f, 0x0a, 0x15, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x2e, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x48, 0x01, 0x52, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x4f, + 0x74, 0x68, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x08, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5d, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x12, 0x5d, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x63, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0e, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x65, 0x6c, 0x66, 0x5f, + 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x08, 0x73, 0x65, 0x6c, 0x66, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6b, 0x69, + 0x6e, 0x64, 0x1a, 0x29, 0x0a, 0x0e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x4d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x35, 0x0a, + 0x16, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x41, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x72, 0x65, + 0x67, 0x69, 0x6f, 0x6e, 0x1a, 0xc0, 0x02, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x24, 0x0a, 0x0b, 0x69, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x69, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x72, 0x63, 0x5f, 0x72, 0x61, 0x6e, + 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x73, + 0x72, 0x63, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x64, 0x65, 0x73, 0x74, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x64, 0x65, 0x73, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x50, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x47, + 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x5f, 0x56, 0x45, + 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x1a, 0x91, 0x03, 0x0a, 0x08, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x73, 0x12, 0x60, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x57, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x43, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x65, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, + 0x0f, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x37, 0x0a, 0x09, 0x44, + 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x17, 0x0a, 0x13, + 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, + 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, + 0x0a, 0x17, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x42, 0x45, 0x49, 0x4e, 0x47, + 0x5f, 0x4d, 0x4f, 0x44, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x40, 0x0a, 0x0b, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x18, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x45, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x52, + 0x4f, 0x55, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x3a, 0x85, 0x01, 0xea, 0x41, 0x81, 0x01, 0x0a, + 0x33, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4a, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x7d, + 0x42, 0x08, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x22, 0xd0, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, + 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xd4, 0x01, 0x0a, 0x1d, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x69, 0x0a, 0x13, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x11, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, + 0x22, 0x6d, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, + 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3b, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x35, 0x0a, 0x33, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, + 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xac, 0x02, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x15, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x62, + 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x12, 0x6c, 0x0a, 0x12, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x94, + 0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, + 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x4f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3b, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x35, 0x0a, 0x33, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x32, 0x8b, 0x09, 0x0a, 0x19, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xf7, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x45, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4f, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0xe4, 0x01, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x4d, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x40, 0x12, 0x3e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb6, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, + 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb4, 0x01, 0xca, 0x41, 0x25, 0x0a, 0x10, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x11, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x2f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2c, 0x70, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x3a, 0x12, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x79, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x3e, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x7d, 0x2f, 0x70, 0x6f, 0x6c, 0x69, + 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0xfb, 0x01, + 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, + 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, + 0x61, 0x73, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x7a, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x2a, 0x3e, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 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, + 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, + 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x56, 0xca, 0x41, 0x22, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 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, 0xa8, 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x42, 0x17, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x42, 0x61, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x67, 0x6f, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0xaa, 0x02, 0x27, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0xea, 0x02, 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescOnce sync.Once + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescData = file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDesc +) + +func file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescGZIP() []byte { + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescOnce.Do(func() { + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescData) + }) + return file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDescData +} + +var file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_goTypes = []any{ + (PolicyBasedRoute_OtherRoutes)(0), // 0: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.OtherRoutes + (PolicyBasedRoute_Filter_ProtocolVersion)(0), // 1: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Filter.ProtocolVersion + (PolicyBasedRoute_Warnings_Code)(0), // 2: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.Code + (*PolicyBasedRoute)(nil), // 3: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute + (*ListPolicyBasedRoutesRequest)(nil), // 4: google.cloud.networkconnectivity.v1beta.ListPolicyBasedRoutesRequest + (*ListPolicyBasedRoutesResponse)(nil), // 5: google.cloud.networkconnectivity.v1beta.ListPolicyBasedRoutesResponse + (*GetPolicyBasedRouteRequest)(nil), // 6: google.cloud.networkconnectivity.v1beta.GetPolicyBasedRouteRequest + (*CreatePolicyBasedRouteRequest)(nil), // 7: google.cloud.networkconnectivity.v1beta.CreatePolicyBasedRouteRequest + (*DeletePolicyBasedRouteRequest)(nil), // 8: google.cloud.networkconnectivity.v1beta.DeletePolicyBasedRouteRequest + (*PolicyBasedRoute_VirtualMachine)(nil), // 9: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.VirtualMachine + (*PolicyBasedRoute_InterconnectAttachment)(nil), // 10: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.InterconnectAttachment + (*PolicyBasedRoute_Filter)(nil), // 11: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Filter + (*PolicyBasedRoute_Warnings)(nil), // 12: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings + nil, // 13: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.LabelsEntry + nil, // 14: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.DataEntry + (*timestamppb.Timestamp)(nil), // 15: google.protobuf.Timestamp + (*longrunningpb.Operation)(nil), // 16: google.longrunning.Operation +} +var file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_depIdxs = []int32{ + 9, // 0: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.virtual_machine:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.VirtualMachine + 10, // 1: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.interconnect_attachment:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.InterconnectAttachment + 0, // 2: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.next_hop_other_routes:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.OtherRoutes + 15, // 3: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.create_time:type_name -> google.protobuf.Timestamp + 15, // 4: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.update_time:type_name -> google.protobuf.Timestamp + 13, // 5: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.labels:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.LabelsEntry + 11, // 6: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.filter:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Filter + 12, // 7: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.warnings:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings + 3, // 8: google.cloud.networkconnectivity.v1beta.ListPolicyBasedRoutesResponse.policy_based_routes:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute + 3, // 9: google.cloud.networkconnectivity.v1beta.CreatePolicyBasedRouteRequest.policy_based_route:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute + 1, // 10: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Filter.protocol_version:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Filter.ProtocolVersion + 2, // 11: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.code:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.Code + 14, // 12: google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.data:type_name -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute.Warnings.DataEntry + 4, // 13: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.ListPolicyBasedRoutes:input_type -> google.cloud.networkconnectivity.v1beta.ListPolicyBasedRoutesRequest + 6, // 14: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.GetPolicyBasedRoute:input_type -> google.cloud.networkconnectivity.v1beta.GetPolicyBasedRouteRequest + 7, // 15: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.CreatePolicyBasedRoute:input_type -> google.cloud.networkconnectivity.v1beta.CreatePolicyBasedRouteRequest + 8, // 16: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.DeletePolicyBasedRoute:input_type -> google.cloud.networkconnectivity.v1beta.DeletePolicyBasedRouteRequest + 5, // 17: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.ListPolicyBasedRoutes:output_type -> google.cloud.networkconnectivity.v1beta.ListPolicyBasedRoutesResponse + 3, // 18: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.GetPolicyBasedRoute:output_type -> google.cloud.networkconnectivity.v1beta.PolicyBasedRoute + 16, // 19: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.CreatePolicyBasedRoute:output_type -> google.longrunning.Operation + 16, // 20: google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService.DeletePolicyBasedRoute:output_type -> google.longrunning.Operation + 17, // [17:21] is the sub-list for method output_type + 13, // [13:17] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_init() } +func file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_init() { + if File_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto != nil { + return + } + file_google_cloud_networkconnectivity_v1beta_common_proto_init() + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes[0].OneofWrappers = []any{ + (*PolicyBasedRoute_VirtualMachine_)(nil), + (*PolicyBasedRoute_InterconnectAttachment_)(nil), + (*PolicyBasedRoute_NextHopIlbIp)(nil), + (*PolicyBasedRoute_NextHopOtherRoutes)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDesc, + NumEnums: 3, + NumMessages: 12, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_goTypes, + DependencyIndexes: file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_depIdxs, + EnumInfos: file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_enumTypes, + MessageInfos: file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_msgTypes, + }.Build() + File_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto = out.File + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_rawDesc = nil + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_goTypes = nil + file_google_cloud_networkconnectivity_v1beta_policy_based_routing_proto_depIdxs = nil +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing_grpc.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing_grpc.pb.go new file mode 100644 index 000000000000..8ce6b75746d1 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/policy_based_routing_grpc.pb.go @@ -0,0 +1,242 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/policy_based_routing.proto + +package networkconnectivitypb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + PolicyBasedRoutingService_ListPolicyBasedRoutes_FullMethodName = "/google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService/ListPolicyBasedRoutes" + PolicyBasedRoutingService_GetPolicyBasedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService/GetPolicyBasedRoute" + PolicyBasedRoutingService_CreatePolicyBasedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService/CreatePolicyBasedRoute" + PolicyBasedRoutingService_DeletePolicyBasedRoute_FullMethodName = "/google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService/DeletePolicyBasedRoute" +) + +// PolicyBasedRoutingServiceClient is the client API for PolicyBasedRoutingService 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 PolicyBasedRoutingServiceClient interface { + // Lists policy-based routes in a given project and location. + ListPolicyBasedRoutes(ctx context.Context, in *ListPolicyBasedRoutesRequest, opts ...grpc.CallOption) (*ListPolicyBasedRoutesResponse, error) + // Gets details of a single policy-based route. + GetPolicyBasedRoute(ctx context.Context, in *GetPolicyBasedRouteRequest, opts ...grpc.CallOption) (*PolicyBasedRoute, error) + // Creates a new policy-based route in a given project and location. + CreatePolicyBasedRoute(ctx context.Context, in *CreatePolicyBasedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single policy-based route. + DeletePolicyBasedRoute(ctx context.Context, in *DeletePolicyBasedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type policyBasedRoutingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewPolicyBasedRoutingServiceClient(cc grpc.ClientConnInterface) PolicyBasedRoutingServiceClient { + return &policyBasedRoutingServiceClient{cc} +} + +func (c *policyBasedRoutingServiceClient) ListPolicyBasedRoutes(ctx context.Context, in *ListPolicyBasedRoutesRequest, opts ...grpc.CallOption) (*ListPolicyBasedRoutesResponse, error) { + out := new(ListPolicyBasedRoutesResponse) + err := c.cc.Invoke(ctx, PolicyBasedRoutingService_ListPolicyBasedRoutes_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *policyBasedRoutingServiceClient) GetPolicyBasedRoute(ctx context.Context, in *GetPolicyBasedRouteRequest, opts ...grpc.CallOption) (*PolicyBasedRoute, error) { + out := new(PolicyBasedRoute) + err := c.cc.Invoke(ctx, PolicyBasedRoutingService_GetPolicyBasedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *policyBasedRoutingServiceClient) CreatePolicyBasedRoute(ctx context.Context, in *CreatePolicyBasedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, PolicyBasedRoutingService_CreatePolicyBasedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *policyBasedRoutingServiceClient) DeletePolicyBasedRoute(ctx context.Context, in *DeletePolicyBasedRouteRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, PolicyBasedRoutingService_DeletePolicyBasedRoute_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// PolicyBasedRoutingServiceServer is the server API for PolicyBasedRoutingService service. +// All implementations should embed UnimplementedPolicyBasedRoutingServiceServer +// for forward compatibility +type PolicyBasedRoutingServiceServer interface { + // Lists policy-based routes in a given project and location. + ListPolicyBasedRoutes(context.Context, *ListPolicyBasedRoutesRequest) (*ListPolicyBasedRoutesResponse, error) + // Gets details of a single policy-based route. + GetPolicyBasedRoute(context.Context, *GetPolicyBasedRouteRequest) (*PolicyBasedRoute, error) + // Creates a new policy-based route in a given project and location. + CreatePolicyBasedRoute(context.Context, *CreatePolicyBasedRouteRequest) (*longrunningpb.Operation, error) + // Deletes a single policy-based route. + DeletePolicyBasedRoute(context.Context, *DeletePolicyBasedRouteRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedPolicyBasedRoutingServiceServer should be embedded to have forward compatible implementations. +type UnimplementedPolicyBasedRoutingServiceServer struct { +} + +func (UnimplementedPolicyBasedRoutingServiceServer) ListPolicyBasedRoutes(context.Context, *ListPolicyBasedRoutesRequest) (*ListPolicyBasedRoutesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPolicyBasedRoutes not implemented") +} +func (UnimplementedPolicyBasedRoutingServiceServer) GetPolicyBasedRoute(context.Context, *GetPolicyBasedRouteRequest) (*PolicyBasedRoute, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPolicyBasedRoute not implemented") +} +func (UnimplementedPolicyBasedRoutingServiceServer) CreatePolicyBasedRoute(context.Context, *CreatePolicyBasedRouteRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreatePolicyBasedRoute not implemented") +} +func (UnimplementedPolicyBasedRoutingServiceServer) DeletePolicyBasedRoute(context.Context, *DeletePolicyBasedRouteRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeletePolicyBasedRoute not implemented") +} + +// UnsafePolicyBasedRoutingServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to PolicyBasedRoutingServiceServer will +// result in compilation errors. +type UnsafePolicyBasedRoutingServiceServer interface { + mustEmbedUnimplementedPolicyBasedRoutingServiceServer() +} + +func RegisterPolicyBasedRoutingServiceServer(s grpc.ServiceRegistrar, srv PolicyBasedRoutingServiceServer) { + s.RegisterService(&PolicyBasedRoutingService_ServiceDesc, srv) +} + +func _PolicyBasedRoutingService_ListPolicyBasedRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPolicyBasedRoutesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PolicyBasedRoutingServiceServer).ListPolicyBasedRoutes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PolicyBasedRoutingService_ListPolicyBasedRoutes_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PolicyBasedRoutingServiceServer).ListPolicyBasedRoutes(ctx, req.(*ListPolicyBasedRoutesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PolicyBasedRoutingService_GetPolicyBasedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPolicyBasedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PolicyBasedRoutingServiceServer).GetPolicyBasedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PolicyBasedRoutingService_GetPolicyBasedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PolicyBasedRoutingServiceServer).GetPolicyBasedRoute(ctx, req.(*GetPolicyBasedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PolicyBasedRoutingService_CreatePolicyBasedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreatePolicyBasedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PolicyBasedRoutingServiceServer).CreatePolicyBasedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PolicyBasedRoutingService_CreatePolicyBasedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PolicyBasedRoutingServiceServer).CreatePolicyBasedRoute(ctx, req.(*CreatePolicyBasedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _PolicyBasedRoutingService_DeletePolicyBasedRoute_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeletePolicyBasedRouteRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PolicyBasedRoutingServiceServer).DeletePolicyBasedRoute(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: PolicyBasedRoutingService_DeletePolicyBasedRoute_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PolicyBasedRoutingServiceServer).DeletePolicyBasedRoute(ctx, req.(*DeletePolicyBasedRouteRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// PolicyBasedRoutingService_ServiceDesc is the grpc.ServiceDesc for PolicyBasedRoutingService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var PolicyBasedRoutingService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.networkconnectivity.v1beta.PolicyBasedRoutingService", + HandlerType: (*PolicyBasedRoutingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPolicyBasedRoutes", + Handler: _PolicyBasedRoutingService_ListPolicyBasedRoutes_Handler, + }, + { + MethodName: "GetPolicyBasedRoute", + Handler: _PolicyBasedRoutingService_GetPolicyBasedRoute_Handler, + }, + { + MethodName: "CreatePolicyBasedRoute", + Handler: _PolicyBasedRoutingService_CreatePolicyBasedRoute_Handler, + }, + { + MethodName: "DeletePolicyBasedRoute", + Handler: _PolicyBasedRoutingService_DeletePolicyBasedRoute_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/networkconnectivity/v1beta/policy_based_routing.proto", +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager.pb.go new file mode 100644 index 000000000000..c5bc5ba312a6 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager.pb.go @@ -0,0 +1,2547 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.35.2 +// protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/transport_manager.proto + +package networkconnectivitypb + +import ( + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Bandwidth values that may be supported for a specific profile. +type RemoteTransportProfile_Bandwidth int32 + +const ( + // Unspecified bandwidth. + RemoteTransportProfile_BANDWIDTH_UNSPECIFIED RemoteTransportProfile_Bandwidth = 0 + // 50 Megabits per second. + RemoteTransportProfile_BPS_50M RemoteTransportProfile_Bandwidth = 1 + // 100 Megabits per second. + RemoteTransportProfile_BPS_100M RemoteTransportProfile_Bandwidth = 2 + // 200 Megabits per second. + RemoteTransportProfile_BPS_200M RemoteTransportProfile_Bandwidth = 3 + // 300 Megabits per second. + RemoteTransportProfile_BPS_300M RemoteTransportProfile_Bandwidth = 4 + // 400 Megabits per second. + RemoteTransportProfile_BPS_400M RemoteTransportProfile_Bandwidth = 5 + // 500 Megabits per second. + RemoteTransportProfile_BPS_500M RemoteTransportProfile_Bandwidth = 6 + // 1 Gigabit per second. + RemoteTransportProfile_BPS_1G RemoteTransportProfile_Bandwidth = 7 + // 2 Gigabits per second. + RemoteTransportProfile_BPS_2G RemoteTransportProfile_Bandwidth = 8 + // 5 Gigabits per second. + RemoteTransportProfile_BPS_5G RemoteTransportProfile_Bandwidth = 9 + // 10 Gigabits per second. + RemoteTransportProfile_BPS_10G RemoteTransportProfile_Bandwidth = 10 + // 20 Gigabits per second. + RemoteTransportProfile_BPS_20G RemoteTransportProfile_Bandwidth = 11 + // 50 Gigabits per second. + RemoteTransportProfile_BPS_50G RemoteTransportProfile_Bandwidth = 12 + // 100 Gigabits per second. + RemoteTransportProfile_BPS_100G RemoteTransportProfile_Bandwidth = 13 +) + +// Enum value maps for RemoteTransportProfile_Bandwidth. +var ( + RemoteTransportProfile_Bandwidth_name = map[int32]string{ + 0: "BANDWIDTH_UNSPECIFIED", + 1: "BPS_50M", + 2: "BPS_100M", + 3: "BPS_200M", + 4: "BPS_300M", + 5: "BPS_400M", + 6: "BPS_500M", + 7: "BPS_1G", + 8: "BPS_2G", + 9: "BPS_5G", + 10: "BPS_10G", + 11: "BPS_20G", + 12: "BPS_50G", + 13: "BPS_100G", + } + RemoteTransportProfile_Bandwidth_value = map[string]int32{ + "BANDWIDTH_UNSPECIFIED": 0, + "BPS_50M": 1, + "BPS_100M": 2, + "BPS_200M": 3, + "BPS_300M": 4, + "BPS_400M": 5, + "BPS_500M": 6, + "BPS_1G": 7, + "BPS_2G": 8, + "BPS_5G": 9, + "BPS_10G": 10, + "BPS_20G": 11, + "BPS_50G": 12, + "BPS_100G": 13, + } +) + +func (x RemoteTransportProfile_Bandwidth) Enum() *RemoteTransportProfile_Bandwidth { + p := new(RemoteTransportProfile_Bandwidth) + *p = x + return p +} + +func (x RemoteTransportProfile_Bandwidth) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RemoteTransportProfile_Bandwidth) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[0].Descriptor() +} + +func (RemoteTransportProfile_Bandwidth) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[0] +} + +func (x RemoteTransportProfile_Bandwidth) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RemoteTransportProfile_Bandwidth.Descriptor instead. +func (RemoteTransportProfile_Bandwidth) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{0, 0} +} + +// Availability class options. +type RemoteTransportProfile_ServiceLevelAvailability int32 + +const ( + // Unspecified service level availability. + RemoteTransportProfile_SERVICE_LEVEL_AVAILABILITY_UNSPECIFIED RemoteTransportProfile_ServiceLevelAvailability = 0 + // This represents a 99.9% service level on the availability of the + // configured connectivity. + RemoteTransportProfile_HIGH RemoteTransportProfile_ServiceLevelAvailability = 1 + // This represents a 99.99% service level on the availability of the + // configured connectivity. + RemoteTransportProfile_MAXIMUM RemoteTransportProfile_ServiceLevelAvailability = 2 +) + +// Enum value maps for RemoteTransportProfile_ServiceLevelAvailability. +var ( + RemoteTransportProfile_ServiceLevelAvailability_name = map[int32]string{ + 0: "SERVICE_LEVEL_AVAILABILITY_UNSPECIFIED", + 1: "HIGH", + 2: "MAXIMUM", + } + RemoteTransportProfile_ServiceLevelAvailability_value = map[string]int32{ + "SERVICE_LEVEL_AVAILABILITY_UNSPECIFIED": 0, + "HIGH": 1, + "MAXIMUM": 2, + } +) + +func (x RemoteTransportProfile_ServiceLevelAvailability) Enum() *RemoteTransportProfile_ServiceLevelAvailability { + p := new(RemoteTransportProfile_ServiceLevelAvailability) + *p = x + return p +} + +func (x RemoteTransportProfile_ServiceLevelAvailability) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RemoteTransportProfile_ServiceLevelAvailability) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[1].Descriptor() +} + +func (RemoteTransportProfile_ServiceLevelAvailability) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[1] +} + +func (x RemoteTransportProfile_ServiceLevelAvailability) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RemoteTransportProfile_ServiceLevelAvailability.Descriptor instead. +func (RemoteTransportProfile_ServiceLevelAvailability) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{0, 1} +} + +// Type of provisioning flows supported. +type RemoteTransportProfile_KeyProvisioningFlow int32 + +const ( + // Unspecified key provisioning flow. + RemoteTransportProfile_KEY_PROVISIONING_FLOW_UNSPECIFIED RemoteTransportProfile_KeyProvisioningFlow = 0 + // The activationKey field on the Transport must be included in a create or + // patch request to establish connectivity. + RemoteTransportProfile_INPUT_ONLY RemoteTransportProfile_KeyProvisioningFlow = 1 + // The generatedActivationKey field is populated and must be read from the + // resource and passed into the other provider. + RemoteTransportProfile_OUTPUT_ONLY RemoteTransportProfile_KeyProvisioningFlow = 2 + // Both activation key fields are allowed for establishing connectivity. If + // a key is input, the generated key is still present after provisioning is + // finished. + RemoteTransportProfile_INPUT_OR_OUTPUT RemoteTransportProfile_KeyProvisioningFlow = 3 +) + +// Enum value maps for RemoteTransportProfile_KeyProvisioningFlow. +var ( + RemoteTransportProfile_KeyProvisioningFlow_name = map[int32]string{ + 0: "KEY_PROVISIONING_FLOW_UNSPECIFIED", + 1: "INPUT_ONLY", + 2: "OUTPUT_ONLY", + 3: "INPUT_OR_OUTPUT", + } + RemoteTransportProfile_KeyProvisioningFlow_value = map[string]int32{ + "KEY_PROVISIONING_FLOW_UNSPECIFIED": 0, + "INPUT_ONLY": 1, + "OUTPUT_ONLY": 2, + "INPUT_OR_OUTPUT": 3, + } +) + +func (x RemoteTransportProfile_KeyProvisioningFlow) Enum() *RemoteTransportProfile_KeyProvisioningFlow { + p := new(RemoteTransportProfile_KeyProvisioningFlow) + *p = x + return p +} + +func (x RemoteTransportProfile_KeyProvisioningFlow) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RemoteTransportProfile_KeyProvisioningFlow) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[2].Descriptor() +} + +func (RemoteTransportProfile_KeyProvisioningFlow) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[2] +} + +func (x RemoteTransportProfile_KeyProvisioningFlow) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RemoteTransportProfile_KeyProvisioningFlow.Descriptor instead. +func (RemoteTransportProfile_KeyProvisioningFlow) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{0, 2} +} + +// State of the RemoteTransportProfile. +type RemoteTransportProfile_State int32 + +const ( + // Unspecified state. + RemoteTransportProfile_STATE_UNSPECIFIED RemoteTransportProfile_State = 0 + // Not enough capacity for customers to order. + RemoteTransportProfile_CLOSED RemoteTransportProfile_State = 1 + // Enough capacity to fulfill an order. + RemoteTransportProfile_OPEN RemoteTransportProfile_State = 2 +) + +// Enum value maps for RemoteTransportProfile_State. +var ( + RemoteTransportProfile_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CLOSED", + 2: "OPEN", + } + RemoteTransportProfile_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CLOSED": 1, + "OPEN": 2, + } +) + +func (x RemoteTransportProfile_State) Enum() *RemoteTransportProfile_State { + p := new(RemoteTransportProfile_State) + *p = x + return p +} + +func (x RemoteTransportProfile_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RemoteTransportProfile_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[3].Descriptor() +} + +func (RemoteTransportProfile_State) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[3] +} + +func (x RemoteTransportProfile_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RemoteTransportProfile_State.Descriptor instead. +func (RemoteTransportProfile_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{0, 3} +} + +// Supported bandwidth options. +type Transport_Bandwidth int32 + +const ( + // Unspecified bandwidth. + Transport_BANDWIDTH_UNSPECIFIED Transport_Bandwidth = 0 + // 50 Megabits per second. + Transport_BPS_50M Transport_Bandwidth = 1 + // 100 Megabits per second. + Transport_BPS_100M Transport_Bandwidth = 2 + // 200 Megabits per second. + Transport_BPS_200M Transport_Bandwidth = 3 + // 300 Megabits per second. + Transport_BPS_300M Transport_Bandwidth = 4 + // 400 Megabits per second. + Transport_BPS_400M Transport_Bandwidth = 5 + // 500 Megabits per second. + Transport_BPS_500M Transport_Bandwidth = 6 + // 1 Gigabit per second. + Transport_BPS_1G Transport_Bandwidth = 7 + // 2 Gigabits per second. + Transport_BPS_2G Transport_Bandwidth = 8 + // 5 Gigabits per second. + Transport_BPS_5G Transport_Bandwidth = 9 + // 10 Gigabits per second. + Transport_BPS_10G Transport_Bandwidth = 10 + // 20 Gigabits per second. + Transport_BPS_20G Transport_Bandwidth = 11 + // 50 Gigabits per second. + Transport_BPS_50G Transport_Bandwidth = 12 + // 100 Gigabits per second. + Transport_BPS_100G Transport_Bandwidth = 13 +) + +// Enum value maps for Transport_Bandwidth. +var ( + Transport_Bandwidth_name = map[int32]string{ + 0: "BANDWIDTH_UNSPECIFIED", + 1: "BPS_50M", + 2: "BPS_100M", + 3: "BPS_200M", + 4: "BPS_300M", + 5: "BPS_400M", + 6: "BPS_500M", + 7: "BPS_1G", + 8: "BPS_2G", + 9: "BPS_5G", + 10: "BPS_10G", + 11: "BPS_20G", + 12: "BPS_50G", + 13: "BPS_100G", + } + Transport_Bandwidth_value = map[string]int32{ + "BANDWIDTH_UNSPECIFIED": 0, + "BPS_50M": 1, + "BPS_100M": 2, + "BPS_200M": 3, + "BPS_300M": 4, + "BPS_400M": 5, + "BPS_500M": 6, + "BPS_1G": 7, + "BPS_2G": 8, + "BPS_5G": 9, + "BPS_10G": 10, + "BPS_20G": 11, + "BPS_50G": 12, + "BPS_100G": 13, + } +) + +func (x Transport_Bandwidth) Enum() *Transport_Bandwidth { + p := new(Transport_Bandwidth) + *p = x + return p +} + +func (x Transport_Bandwidth) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Transport_Bandwidth) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[4].Descriptor() +} + +func (Transport_Bandwidth) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[4] +} + +func (x Transport_Bandwidth) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Transport_Bandwidth.Descriptor instead. +func (Transport_Bandwidth) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{4, 0} +} + +// IP version stack for the established connectivity. +type Transport_StackType int32 + +const ( + // Unspecified stack type. + Transport_STACK_TYPE_UNSPECIFIED Transport_StackType = 0 + // Only IPv4 is supported. (default) + Transport_IPV4_ONLY Transport_StackType = 1 + // Both IPv4 and IPv6 are supported. + Transport_IPV4_IPV6 Transport_StackType = 2 +) + +// Enum value maps for Transport_StackType. +var ( + Transport_StackType_name = map[int32]string{ + 0: "STACK_TYPE_UNSPECIFIED", + 1: "IPV4_ONLY", + 2: "IPV4_IPV6", + } + Transport_StackType_value = map[string]int32{ + "STACK_TYPE_UNSPECIFIED": 0, + "IPV4_ONLY": 1, + "IPV4_IPV6": 2, + } +) + +func (x Transport_StackType) Enum() *Transport_StackType { + p := new(Transport_StackType) + *p = x + return p +} + +func (x Transport_StackType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Transport_StackType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[5].Descriptor() +} + +func (Transport_StackType) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[5] +} + +func (x Transport_StackType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Transport_StackType.Descriptor instead. +func (Transport_StackType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{4, 1} +} + +// Represents the status of the underlying connectivity. One of +// the following states, depending on who has initiated the Transport request. +type Transport_State int32 + +const ( + // Unspecified state. + Transport_STATE_UNSPECIFIED Transport_State = 0 + // The resource exists locally and is being created / associated with the + // resource on the remote provider’s end of the underlying connectivity. + Transport_CREATING Transport_State = 1 + // The Transport exists on both sides of the connection, and is waiting for + // configuration to finalize and be verified as operational. + Transport_PENDING_CONFIG Transport_State = 2 + // The Transport was created in GCP. Depending on the profile’s key + // provisioning flow, this is either waiting for an activation key to be + // input (the key will be validated that it uses remote resources that match + // the Transport), or for the generated key to be input to the provider for + // finalizing. The configured bandwidth is not yet guaranteed. + Transport_PENDING_KEY Transport_State = 3 + // The Transport is configured and the underlying connectivity is considered + // operational. + Transport_ACTIVE Transport_State = 4 + // The Transport is being deleted from GCP. The underlying connectivity is + // no longer operational. + Transport_DELETING Transport_State = 5 + // The Transport was deleted on the remote provider's end and is no longer + // operational. GCP has insufficient information to move the resource back + // to PENDING_KEY state. + Transport_DEPROVISIONED Transport_State = 6 +) + +// Enum value maps for Transport_State. +var ( + Transport_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "PENDING_CONFIG", + 3: "PENDING_KEY", + 4: "ACTIVE", + 5: "DELETING", + 6: "DEPROVISIONED", + } + Transport_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "PENDING_CONFIG": 2, + "PENDING_KEY": 3, + "ACTIVE": 4, + "DELETING": 5, + "DEPROVISIONED": 6, + } +) + +func (x Transport_State) Enum() *Transport_State { + p := new(Transport_State) + *p = x + return p +} + +func (x Transport_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Transport_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[6].Descriptor() +} + +func (Transport_State) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[6] +} + +func (x Transport_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Transport_State.Descriptor instead. +func (Transport_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{4, 2} +} + +// The overall status of the Transport. +type GetStatusResponse_OverallStatus int32 + +const ( + // Unspecified status. + GetStatusResponse_OVERALL_STATUS_UNSPECIFIED GetStatusResponse_OverallStatus = 0 + // Resource is active and operational. + GetStatusResponse_ACTIVE GetStatusResponse_OverallStatus = 1 + // Resource is waiting for an activation key to be exchanged. + GetStatusResponse_PENDING_KEY GetStatusResponse_OverallStatus = 2 + // Activation keys have been exchanged and connectivity is being + // established. + GetStatusResponse_CONFIGURING GetStatusResponse_OverallStatus = 3 + // VPC Peering has been taken down, or the NCC Spoke has been rejected. + GetStatusResponse_DISCONNECTED GetStatusResponse_OverallStatus = 4 + // User configuration is correct, but the configured capacity is + // operationally down. + GetStatusResponse_DOWN GetStatusResponse_OverallStatus = 5 +) + +// Enum value maps for GetStatusResponse_OverallStatus. +var ( + GetStatusResponse_OverallStatus_name = map[int32]string{ + 0: "OVERALL_STATUS_UNSPECIFIED", + 1: "ACTIVE", + 2: "PENDING_KEY", + 3: "CONFIGURING", + 4: "DISCONNECTED", + 5: "DOWN", + } + GetStatusResponse_OverallStatus_value = map[string]int32{ + "OVERALL_STATUS_UNSPECIFIED": 0, + "ACTIVE": 1, + "PENDING_KEY": 2, + "CONFIGURING": 3, + "DISCONNECTED": 4, + "DOWN": 5, + } +) + +func (x GetStatusResponse_OverallStatus) Enum() *GetStatusResponse_OverallStatus { + p := new(GetStatusResponse_OverallStatus) + *p = x + return p +} + +func (x GetStatusResponse_OverallStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetStatusResponse_OverallStatus) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[7].Descriptor() +} + +func (GetStatusResponse_OverallStatus) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[7] +} + +func (x GetStatusResponse_OverallStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetStatusResponse_OverallStatus.Descriptor instead. +func (GetStatusResponse_OverallStatus) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{9, 0} +} + +// The operational status of the underlying networking components. +type GetStatusResponse_OperationalStatus int32 + +const ( + // Unspecified status. + GetStatusResponse_OPERATIONAL_STATUS_UNSPECIFIED GetStatusResponse_OperationalStatus = 0 + // Protected capacity is available and networking components show as up. + GetStatusResponse_OPERATIONAL_STATUS_ACTIVE GetStatusResponse_OperationalStatus = 1 + // Protected capacity is showing as operationally down. + GetStatusResponse_OPERATIONAL_STATUS_DOWN GetStatusResponse_OperationalStatus = 2 +) + +// Enum value maps for GetStatusResponse_OperationalStatus. +var ( + GetStatusResponse_OperationalStatus_name = map[int32]string{ + 0: "OPERATIONAL_STATUS_UNSPECIFIED", + 1: "OPERATIONAL_STATUS_ACTIVE", + 2: "OPERATIONAL_STATUS_DOWN", + } + GetStatusResponse_OperationalStatus_value = map[string]int32{ + "OPERATIONAL_STATUS_UNSPECIFIED": 0, + "OPERATIONAL_STATUS_ACTIVE": 1, + "OPERATIONAL_STATUS_DOWN": 2, + } +) + +func (x GetStatusResponse_OperationalStatus) Enum() *GetStatusResponse_OperationalStatus { + p := new(GetStatusResponse_OperationalStatus) + *p = x + return p +} + +func (x GetStatusResponse_OperationalStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetStatusResponse_OperationalStatus) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[8].Descriptor() +} + +func (GetStatusResponse_OperationalStatus) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[8] +} + +func (x GetStatusResponse_OperationalStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetStatusResponse_OperationalStatus.Descriptor instead. +func (GetStatusResponse_OperationalStatus) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{9, 1} +} + +// Current status of connectivity to the local GCP resource. This reflects +// whether the VPC Peering or NCC Hub appears correctly configured. +type GetStatusResponse_ConnectivityStatus int32 + +const ( + // Unspecified status. + GetStatusResponse_CONNECTIVITY_STATUS_UNSPECIFIED GetStatusResponse_ConnectivityStatus = 0 + // VPC Peering or the NCC Hub appear to be correctly established. + GetStatusResponse_CONNECTIVITY_STATUS_CONNECTED GetStatusResponse_ConnectivityStatus = 1 + // VPC Peering has been taken down, or the NCC Spoke has been rejected. + GetStatusResponse_CONNECTIVITY_STATUS_DISCONNECTED GetStatusResponse_ConnectivityStatus = 2 +) + +// Enum value maps for GetStatusResponse_ConnectivityStatus. +var ( + GetStatusResponse_ConnectivityStatus_name = map[int32]string{ + 0: "CONNECTIVITY_STATUS_UNSPECIFIED", + 1: "CONNECTIVITY_STATUS_CONNECTED", + 2: "CONNECTIVITY_STATUS_DISCONNECTED", + } + GetStatusResponse_ConnectivityStatus_value = map[string]int32{ + "CONNECTIVITY_STATUS_UNSPECIFIED": 0, + "CONNECTIVITY_STATUS_CONNECTED": 1, + "CONNECTIVITY_STATUS_DISCONNECTED": 2, + } +) + +func (x GetStatusResponse_ConnectivityStatus) Enum() *GetStatusResponse_ConnectivityStatus { + p := new(GetStatusResponse_ConnectivityStatus) + *p = x + return p +} + +func (x GetStatusResponse_ConnectivityStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetStatusResponse_ConnectivityStatus) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[9].Descriptor() +} + +func (GetStatusResponse_ConnectivityStatus) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[9] +} + +func (x GetStatusResponse_ConnectivityStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetStatusResponse_ConnectivityStatus.Descriptor instead. +func (GetStatusResponse_ConnectivityStatus) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{9, 2} +} + +// Current status of MACSec on the underlying network connectivity between GC +// and the partner. +type GetStatusResponse_MacSecStatus int32 + +const ( + // Unspecified status. + GetStatusResponse_MAC_SEC_STATUS_UNSPECIFIED GetStatusResponse_MacSecStatus = 0 + // MACSec is protecting the links and configured in fail closed. + GetStatusResponse_MAC_SEC_STATUS_ACTIVE_FAIL_CLOSED GetStatusResponse_MacSecStatus = 1 + // MACSec is protecting the links and configured to fail open on at least + // one of the redundant links. + GetStatusResponse_MAC_SEC_STATUS_ACTIVE_FAIL_OPEN GetStatusResponse_MacSecStatus = 2 + // MACSec is not configured on at least one of the underlying links. + GetStatusResponse_MAC_SEC_STATUS_NOT_CONFIGURED GetStatusResponse_MacSecStatus = 3 +) + +// Enum value maps for GetStatusResponse_MacSecStatus. +var ( + GetStatusResponse_MacSecStatus_name = map[int32]string{ + 0: "MAC_SEC_STATUS_UNSPECIFIED", + 1: "MAC_SEC_STATUS_ACTIVE_FAIL_CLOSED", + 2: "MAC_SEC_STATUS_ACTIVE_FAIL_OPEN", + 3: "MAC_SEC_STATUS_NOT_CONFIGURED", + } + GetStatusResponse_MacSecStatus_value = map[string]int32{ + "MAC_SEC_STATUS_UNSPECIFIED": 0, + "MAC_SEC_STATUS_ACTIVE_FAIL_CLOSED": 1, + "MAC_SEC_STATUS_ACTIVE_FAIL_OPEN": 2, + "MAC_SEC_STATUS_NOT_CONFIGURED": 3, + } +) + +func (x GetStatusResponse_MacSecStatus) Enum() *GetStatusResponse_MacSecStatus { + p := new(GetStatusResponse_MacSecStatus) + *p = x + return p +} + +func (x GetStatusResponse_MacSecStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GetStatusResponse_MacSecStatus) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[10].Descriptor() +} + +func (GetStatusResponse_MacSecStatus) Type() protoreflect.EnumType { + return &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes[10] +} + +func (x GetStatusResponse_MacSecStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GetStatusResponse_MacSecStatus.Descriptor instead. +func (GetStatusResponse_MacSecStatus) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{9, 3} +} + +// Message describing RemoteTransportProfile object. +type RemoteTransportProfile struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. Name of the resource in the format of $provider-$site. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. Description of the profile. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Output only. Name of the provider on the other end of this profile. E.g. + // “Amazon Web Services” or “Microsoft Azure”. + Provider string `protobuf:"bytes,7,opt,name=provider,proto3" json:"provider,omitempty"` + // Output only. If the profile is a Cloud Service Provider with compute + // resources, this is populated with the region where connectivity is being + // established. If the profile provides facility-level selection, this is an + // identity of the facility any connections on this profile are going through. + ProviderSite string `protobuf:"bytes,8,opt,name=provider_site,json=providerSite,proto3" json:"provider_site,omitempty"` + // Output only. List of bandwidth enum values that are supported by this + // profile. + SupportedBandwidths []RemoteTransportProfile_Bandwidth `protobuf:"varint,9,rep,packed,name=supported_bandwidths,json=supportedBandwidths,proto3,enum=google.cloud.networkconnectivity.v1beta.RemoteTransportProfile_Bandwidth" json:"supported_bandwidths,omitempty"` + // Output only. Availability class that will be configured for this + // particular RemoteTransportProfile. + Sla RemoteTransportProfile_ServiceLevelAvailability `protobuf:"varint,10,opt,name=sla,proto3,enum=google.cloud.networkconnectivity.v1beta.RemoteTransportProfile_ServiceLevelAvailability" json:"sla,omitempty"` + // Output only. Type of provisioning flows supported by this profile. + Flow RemoteTransportProfile_KeyProvisioningFlow `protobuf:"varint,11,opt,name=flow,proto3,enum=google.cloud.networkconnectivity.v1beta.RemoteTransportProfile_KeyProvisioningFlow" json:"flow,omitempty"` + // Output only. Order state for this profile. + OrderState RemoteTransportProfile_State `protobuf:"varint,12,opt,name=order_state,json=orderState,proto3,enum=google.cloud.networkconnectivity.v1beta.RemoteTransportProfile_State" json:"order_state,omitempty"` + // Output only. Human readable name of this profile, used to identify this + // profile in the UI. + DisplayName string `protobuf:"bytes,13,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *RemoteTransportProfile) Reset() { + *x = RemoteTransportProfile{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoteTransportProfile) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoteTransportProfile) ProtoMessage() {} + +func (x *RemoteTransportProfile) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 RemoteTransportProfile.ProtoReflect.Descriptor instead. +func (*RemoteTransportProfile) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{0} +} + +func (x *RemoteTransportProfile) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RemoteTransportProfile) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *RemoteTransportProfile) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *RemoteTransportProfile) GetProvider() string { + if x != nil { + return x.Provider + } + return "" +} + +func (x *RemoteTransportProfile) GetProviderSite() string { + if x != nil { + return x.ProviderSite + } + return "" +} + +func (x *RemoteTransportProfile) GetSupportedBandwidths() []RemoteTransportProfile_Bandwidth { + if x != nil { + return x.SupportedBandwidths + } + return nil +} + +func (x *RemoteTransportProfile) GetSla() RemoteTransportProfile_ServiceLevelAvailability { + if x != nil { + return x.Sla + } + return RemoteTransportProfile_SERVICE_LEVEL_AVAILABILITY_UNSPECIFIED +} + +func (x *RemoteTransportProfile) GetFlow() RemoteTransportProfile_KeyProvisioningFlow { + if x != nil { + return x.Flow + } + return RemoteTransportProfile_KEY_PROVISIONING_FLOW_UNSPECIFIED +} + +func (x *RemoteTransportProfile) GetOrderState() RemoteTransportProfile_State { + if x != nil { + return x.OrderState + } + return RemoteTransportProfile_STATE_UNSPECIFIED +} + +func (x *RemoteTransportProfile) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +// Message for requesting list of RemoteTransportProfiles. +type ListRemoteTransportProfilesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListRemoteTransportProfilesRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListRemoteTransportProfilesRequest) Reset() { + *x = ListRemoteTransportProfilesRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRemoteTransportProfilesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRemoteTransportProfilesRequest) ProtoMessage() {} + +func (x *ListRemoteTransportProfilesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 ListRemoteTransportProfilesRequest.ProtoReflect.Descriptor instead. +func (*ListRemoteTransportProfilesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{1} +} + +func (x *ListRemoteTransportProfilesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListRemoteTransportProfilesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListRemoteTransportProfilesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListRemoteTransportProfilesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListRemoteTransportProfilesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing RemoteTransportProfiles +type ListRemoteTransportProfilesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of RemoteTransportProfiles. + RemoteTransportProfiles []*RemoteTransportProfile `protobuf:"bytes,1,rep,name=remote_transport_profiles,json=remoteTransportProfiles,proto3" json:"remote_transport_profiles,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Unordered list. Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListRemoteTransportProfilesResponse) Reset() { + *x = ListRemoteTransportProfilesResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRemoteTransportProfilesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRemoteTransportProfilesResponse) ProtoMessage() {} + +func (x *ListRemoteTransportProfilesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 ListRemoteTransportProfilesResponse.ProtoReflect.Descriptor instead. +func (*ListRemoteTransportProfilesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{2} +} + +func (x *ListRemoteTransportProfilesResponse) GetRemoteTransportProfiles() []*RemoteTransportProfile { + if x != nil { + return x.RemoteTransportProfiles + } + return nil +} + +func (x *ListRemoteTransportProfilesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListRemoteTransportProfilesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a RemoteTransportProfile. +type GetRemoteTransportProfileRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetRemoteTransportProfileRequest) Reset() { + *x = GetRemoteTransportProfileRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetRemoteTransportProfileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetRemoteTransportProfileRequest) ProtoMessage() {} + +func (x *GetRemoteTransportProfileRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 GetRemoteTransportProfileRequest.ProtoReflect.Descriptor instead. +func (*GetRemoteTransportProfileRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{3} +} + +func (x *GetRemoteTransportProfileRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message describing Transport object. +type Transport struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifier. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Create time stamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Update time stamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Description of the Transport. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Optional. Name of the remoteTransportProfile that this Transport is + // connecting to. + RemoteProfile string `protobuf:"bytes,7,opt,name=remote_profile,json=remoteProfile,proto3" json:"remote_profile,omitempty"` + // Optional. Key used for establishing a connection with the remote transport. + // This key can only be provided if the profile supports an INPUT key flow and + // the resource is in the PENDING_KEY state. + ProvidedActivationKey string `protobuf:"bytes,8,opt,name=provided_activation_key,json=providedActivationKey,proto3" json:"provided_activation_key,omitempty"` + // Output only. Google-generated activation key. This is only output if the + // selected profile supports an OUTPUT key flow. Inputting this to the + // provider is only valid while the resource is in a PENDING_KEY state. Once + // the provider has accepted the key, the resource will move to the + // CONFIGURING state. + GeneratedActivationKey string `protobuf:"bytes,9,opt,name=generated_activation_key,json=generatedActivationKey,proto3" json:"generated_activation_key,omitempty"` + // Optional. Bandwidth of the Transport. This must be one of the supported + // bandwidths for the remote profile, and must be set when no activation key + // is being provided. + Bandwidth Transport_Bandwidth `protobuf:"varint,10,opt,name=bandwidth,proto3,enum=google.cloud.networkconnectivity.v1beta.Transport_Bandwidth" json:"bandwidth,omitempty"` + // Optional. IP version stack for the established connectivity. + StackType Transport_StackType `protobuf:"varint,11,opt,name=stack_type,json=stackType,proto3,enum=google.cloud.networkconnectivity.v1beta.Transport_StackType" json:"stack_type,omitempty"` + // Output only. State of the underlying connectivity. + State Transport_State `protobuf:"varint,12,opt,name=state,proto3,enum=google.cloud.networkconnectivity.v1beta.Transport_State" json:"state,omitempty"` + // Output only. The maximum transmission unit (MTU) of a packet that can be + // sent over this transport. + MtuLimit int32 `protobuf:"varint,13,opt,name=mtu_limit,json=mtuLimit,proto3" json:"mtu_limit,omitempty"` + // Optional. Administrative state of the underlying connectivity. If set to + // true (default), connectivity should be available between your environments. + // If set to false, the connectivity over these links is disabled. Disabling + // your Transport does not affect billing, and retains the underlying network + // bandwidth associated with the connectivity. + AdminEnabled bool `protobuf:"varint,14,opt,name=admin_enabled,json=adminEnabled,proto3" json:"admin_enabled,omitempty"` + // Optional. Resource URI of the Network that will be peered with this + // Transport. This field must be provided during resource creation and cannot + // be changed. + Network string `protobuf:"bytes,15,opt,name=network,proto3" json:"network,omitempty"` + // Optional. List of IP Prefixes that will be advertised to the remote + // provider. Both IPv4 and IPv6 addresses are supported. + AdvertisedRoutes []string `protobuf:"bytes,16,rep,name=advertised_routes,json=advertisedRoutes,proto3" json:"advertised_routes,omitempty"` + // Optional. The user supplied account id for the CSP associated with the + // remote profile. + RemoteAccountId string `protobuf:"bytes,17,opt,name=remote_account_id,json=remoteAccountId,proto3" json:"remote_account_id,omitempty"` + // Output only. VPC Network URI that was created for the VPC Peering + // connection to the provided `network`. If VPC Peering is disconnected, this + // can be used to re-establish. + PeeringNetwork string `protobuf:"bytes,18,opt,name=peering_network,json=peeringNetwork,proto3" json:"peering_network,omitempty"` +} + +func (x *Transport) Reset() { + *x = Transport{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Transport) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Transport) ProtoMessage() {} + +func (x *Transport) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 Transport.ProtoReflect.Descriptor instead. +func (*Transport) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{4} +} + +func (x *Transport) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Transport) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Transport) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Transport) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Transport) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Transport) GetRemoteProfile() string { + if x != nil { + return x.RemoteProfile + } + return "" +} + +func (x *Transport) GetProvidedActivationKey() string { + if x != nil { + return x.ProvidedActivationKey + } + return "" +} + +func (x *Transport) GetGeneratedActivationKey() string { + if x != nil { + return x.GeneratedActivationKey + } + return "" +} + +func (x *Transport) GetBandwidth() Transport_Bandwidth { + if x != nil { + return x.Bandwidth + } + return Transport_BANDWIDTH_UNSPECIFIED +} + +func (x *Transport) GetStackType() Transport_StackType { + if x != nil { + return x.StackType + } + return Transport_STACK_TYPE_UNSPECIFIED +} + +func (x *Transport) GetState() Transport_State { + if x != nil { + return x.State + } + return Transport_STATE_UNSPECIFIED +} + +func (x *Transport) GetMtuLimit() int32 { + if x != nil { + return x.MtuLimit + } + return 0 +} + +func (x *Transport) GetAdminEnabled() bool { + if x != nil { + return x.AdminEnabled + } + return false +} + +func (x *Transport) GetNetwork() string { + if x != nil { + return x.Network + } + return "" +} + +func (x *Transport) GetAdvertisedRoutes() []string { + if x != nil { + return x.AdvertisedRoutes + } + return nil +} + +func (x *Transport) GetRemoteAccountId() string { + if x != nil { + return x.RemoteAccountId + } + return "" +} + +func (x *Transport) GetPeeringNetwork() string { + if x != nil { + return x.PeeringNetwork + } + return "" +} + +// Message for requesting list of Transports. +type ListTransportsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListTransportsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Requested page size. Server may return fewer items than + // requested. If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListTransportsRequest) Reset() { + *x = ListTransportsRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTransportsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTransportsRequest) ProtoMessage() {} + +func (x *ListTransportsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 ListTransportsRequest.ProtoReflect.Descriptor instead. +func (*ListTransportsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{5} +} + +func (x *ListTransportsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListTransportsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListTransportsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListTransportsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListTransportsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Transports. +type ListTransportsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Transport. + Transports []*Transport `protobuf:"bytes,1,rep,name=transports,proto3" json:"transports,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Unordered list. Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListTransportsResponse) Reset() { + *x = ListTransportsResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTransportsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTransportsResponse) ProtoMessage() {} + +func (x *ListTransportsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 ListTransportsResponse.ProtoReflect.Descriptor instead. +func (*ListTransportsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{6} +} + +func (x *ListTransportsResponse) GetTransports() []*Transport { + if x != nil { + return x.Transports + } + return nil +} + +func (x *ListTransportsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListTransportsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Transport. +type GetTransportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetTransportRequest) Reset() { + *x = GetTransportRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetTransportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTransportRequest) ProtoMessage() {} + +func (x *GetTransportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 GetTransportRequest.ProtoReflect.Descriptor instead. +func (*GetTransportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{7} +} + +func (x *GetTransportRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for getting a Transport's operational status. +type GetStatusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetStatusRequest) Reset() { + *x = GetStatusRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusRequest) ProtoMessage() {} + +func (x *GetStatusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 GetStatusRequest.ProtoReflect.Descriptor instead. +func (*GetStatusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{8} +} + +func (x *GetStatusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for the response to getting a Transport's operational status. +type GetStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The overall status of the Transport. This field will always output the most + // critical status of the Transport. For example, if the connectivity is + // DISCONNECTED, and the underlying networking components are DOWN, then + // the overall status will be DOWN. + OverallStatus GetStatusResponse_OverallStatus `protobuf:"varint,1,opt,name=overall_status,json=overallStatus,proto3,enum=google.cloud.networkconnectivity.v1beta.GetStatusResponse_OverallStatus" json:"overall_status,omitempty"` + // The operational status of the underlying networking components. + OperationalStatus GetStatusResponse_OperationalStatus `protobuf:"varint,2,opt,name=operational_status,json=operationalStatus,proto3,enum=google.cloud.networkconnectivity.v1beta.GetStatusResponse_OperationalStatus" json:"operational_status,omitempty"` + // Current status of connectivity to the local GCP resource. This reflects + // whether the VPC Peering or NCC Hub appears correctly configured. + ConnectivityStatus GetStatusResponse_ConnectivityStatus `protobuf:"varint,3,opt,name=connectivity_status,json=connectivityStatus,proto3,enum=google.cloud.networkconnectivity.v1beta.GetStatusResponse_ConnectivityStatus" json:"connectivity_status,omitempty"` + // Current status of MACSec on the underlying network connectivity between GC + // and the partner. + MacSecStatus GetStatusResponse_MacSecStatus `protobuf:"varint,4,opt,name=mac_sec_status,json=macSecStatus,proto3,enum=google.cloud.networkconnectivity.v1beta.GetStatusResponse_MacSecStatus" json:"mac_sec_status,omitempty"` +} + +func (x *GetStatusResponse) Reset() { + *x = GetStatusResponse{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatusResponse) ProtoMessage() {} + +func (x *GetStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 GetStatusResponse.ProtoReflect.Descriptor instead. +func (*GetStatusResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{9} +} + +func (x *GetStatusResponse) GetOverallStatus() GetStatusResponse_OverallStatus { + if x != nil { + return x.OverallStatus + } + return GetStatusResponse_OVERALL_STATUS_UNSPECIFIED +} + +func (x *GetStatusResponse) GetOperationalStatus() GetStatusResponse_OperationalStatus { + if x != nil { + return x.OperationalStatus + } + return GetStatusResponse_OPERATIONAL_STATUS_UNSPECIFIED +} + +func (x *GetStatusResponse) GetConnectivityStatus() GetStatusResponse_ConnectivityStatus { + if x != nil { + return x.ConnectivityStatus + } + return GetStatusResponse_CONNECTIVITY_STATUS_UNSPECIFIED +} + +func (x *GetStatusResponse) GetMacSecStatus() GetStatusResponse_MacSecStatus { + if x != nil { + return x.MacSecStatus + } + return GetStatusResponse_MAC_SEC_STATUS_UNSPECIFIED +} + +// Message for creating a Transport +type CreateTransportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object + TransportId string `protobuf:"bytes,2,opt,name=transport_id,json=transportId,proto3" json:"transport_id,omitempty"` + // Required. The resource being created + Transport *Transport `protobuf:"bytes,3,opt,name=transport,proto3" json:"transport,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateTransportRequest) Reset() { + *x = CreateTransportRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CreateTransportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateTransportRequest) ProtoMessage() {} + +func (x *CreateTransportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 CreateTransportRequest.ProtoReflect.Descriptor instead. +func (*CreateTransportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{10} +} + +func (x *CreateTransportRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateTransportRequest) GetTransportId() string { + if x != nil { + return x.TransportId + } + return "" +} + +func (x *CreateTransportRequest) GetTransport() *Transport { + if x != nil { + return x.Transport + } + return nil +} + +func (x *CreateTransportRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Transport. +type UpdateTransportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Field mask is used to specify the fields to be overwritten in the + // Transport 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 present in the request will be + // overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Transport *Transport `protobuf:"bytes,2,opt,name=transport,proto3" json:"transport,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateTransportRequest) Reset() { + *x = UpdateTransportRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdateTransportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateTransportRequest) ProtoMessage() {} + +func (x *UpdateTransportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 UpdateTransportRequest.ProtoReflect.Descriptor instead. +func (*UpdateTransportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{11} +} + +func (x *UpdateTransportRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateTransportRequest) GetTransport() *Transport { + if x != nil { + return x.Transport + } + return nil +} + +func (x *UpdateTransportRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Transport. +type DeleteTransportRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteTransportRequest) Reset() { + *x = DeleteTransportRequest{} + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteTransportRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteTransportRequest) ProtoMessage() {} + +func (x *DeleteTransportRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_networkconnectivity_v1beta_transport_manager_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 DeleteTransportRequest.ProtoReflect.Descriptor instead. +func (*DeleteTransportRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP(), []int{12} +} + +func (x *DeleteTransportRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteTransportRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +var File_google_cloud_networkconnectivity_v1beta_transport_manager_proto protoreflect.FileDescriptor + +var file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDesc = []byte{ + 0x0a, 0x3f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 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, 0x34, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xed, 0x0b, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 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, 0x68, 0x0a, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x53, 0x69, 0x74, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, + 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x73, 0x12, 0x6f, 0x0a, 0x03, 0x73, 0x6c, 0x61, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x03, 0x73, 0x6c, 0x61, 0x12, 0x6c, 0x0a, 0x04, 0x66, 0x6c, + 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x4b, 0x65, 0x79, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x6b, 0x0a, 0x0b, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 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, 0x22, 0xd2, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x6e, + 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, + 0x44, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, 0x5f, 0x35, 0x30, 0x4d, 0x10, 0x01, 0x12, 0x0c, + 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x31, 0x30, 0x30, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x42, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x30, 0x4d, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, + 0x53, 0x5f, 0x33, 0x30, 0x30, 0x4d, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, + 0x34, 0x30, 0x30, 0x4d, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x35, 0x30, + 0x30, 0x4d, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x50, 0x53, 0x5f, 0x31, 0x47, 0x10, 0x07, + 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x50, 0x53, 0x5f, 0x32, 0x47, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, + 0x42, 0x50, 0x53, 0x5f, 0x35, 0x47, 0x10, 0x09, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, 0x5f, + 0x31, 0x30, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x47, + 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, 0x5f, 0x35, 0x30, 0x47, 0x10, 0x0c, 0x12, + 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x31, 0x30, 0x30, 0x47, 0x10, 0x0d, 0x22, 0x5d, 0x0a, + 0x18, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x26, 0x53, 0x45, 0x52, + 0x56, 0x49, 0x43, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x41, 0x56, 0x41, 0x49, 0x4c, + 0x41, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x55, 0x4d, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x13, + 0x4b, 0x65, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x46, + 0x6c, 0x6f, 0x77, 0x12, 0x25, 0x0a, 0x21, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, + 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x4e, + 0x50, 0x55, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x55, + 0x54, 0x50, 0x55, 0x54, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x49, + 0x4e, 0x50, 0x55, 0x54, 0x5f, 0x4f, 0x52, 0x5f, 0x4f, 0x55, 0x54, 0x50, 0x55, 0x54, 0x10, 0x03, + 0x22, 0x34, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, + 0x4f, 0x50, 0x45, 0x4e, 0x10, 0x02, 0x3a, 0xcc, 0x01, 0xea, 0x41, 0xc8, 0x01, 0x0a, 0x39, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x5a, 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, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x7d, 0x2a, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x32, 0x16, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x82, 0x02, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x59, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x3b, 0x12, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, + 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xf1, 0x01, 0x0a, 0x23, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x7b, 0x0a, 0x19, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x17, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, + 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x06, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x79, + 0x0a, 0x20, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x55, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x41, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x3b, 0x0a, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x0d, 0x0a, 0x09, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 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, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x5b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 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, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x68, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x41, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x3b, 0x0a, 0x39, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x17, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x64, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, + 0x3d, 0x0a, 0x18, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, + 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x16, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x5f, + 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, + 0x60, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x53, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x74, 0x75, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, + 0x6d, 0x74, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x30, 0x0a, 0x11, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x65, 0x65, 0x72, 0x69, + 0x6e, 0x67, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x70, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x4e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, + 0x22, 0xd2, 0x01, 0x0a, 0x09, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, + 0x0a, 0x15, 0x42, 0x41, 0x4e, 0x44, 0x57, 0x49, 0x44, 0x54, 0x48, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, + 0x5f, 0x35, 0x30, 0x4d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x31, 0x30, + 0x30, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x30, 0x4d, + 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x33, 0x30, 0x30, 0x4d, 0x10, 0x04, + 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x34, 0x30, 0x30, 0x4d, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x35, 0x30, 0x30, 0x4d, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, + 0x42, 0x50, 0x53, 0x5f, 0x31, 0x47, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x50, 0x53, 0x5f, + 0x32, 0x47, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x42, 0x50, 0x53, 0x5f, 0x35, 0x47, 0x10, 0x09, + 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, 0x53, 0x5f, 0x31, 0x30, 0x47, 0x10, 0x0a, 0x12, 0x0b, 0x0a, + 0x07, 0x42, 0x50, 0x53, 0x5f, 0x32, 0x30, 0x47, 0x10, 0x0b, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x50, + 0x53, 0x5f, 0x35, 0x30, 0x47, 0x10, 0x0c, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x50, 0x53, 0x5f, 0x31, + 0x30, 0x30, 0x47, 0x10, 0x0d, 0x22, 0x45, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x43, 0x4b, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x49, 0x50, 0x56, 0x34, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x22, 0x7e, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, + 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, + 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x10, 0x02, 0x12, 0x0f, + 0x0a, 0x0b, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x45, 0x59, 0x10, 0x03, 0x12, + 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x45, 0x50, + 0x52, 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x45, 0x44, 0x10, 0x06, 0x3a, 0x89, 0x01, 0xea, + 0x41, 0x85, 0x01, 0x0a, 0x2c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x3e, 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, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x7d, 0x2a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x32, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x22, 0xe8, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, + 0x72, 0x42, 0x79, 0x22, 0xbb, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, + 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x25, 0x0a, 0x0b, 0x75, 0x6e, + 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x06, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, + 0x65, 0x22, 0x5f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x5c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x85, 0x08, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6f, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x48, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x76, 0x65, 0x72, 0x61, + 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x6c, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x7b, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x6d, 0x0a, 0x0e, 0x6d, 0x61, 0x63, 0x5f, 0x73, 0x65, 0x63, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0c, 0x6d, 0x61, 0x63, 0x53, 0x65, 0x63, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x22, 0x79, 0x0a, 0x0d, 0x4f, 0x76, 0x65, 0x72, 0x61, 0x6c, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x4f, 0x56, 0x45, 0x52, 0x41, 0x4c, 0x4c, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, + 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x4b, 0x45, 0x59, 0x10, + 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, 0x55, 0x52, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x05, 0x22, 0x73, + 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x50, 0x45, 0x52, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, + 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x4f, 0x57, + 0x4e, 0x10, 0x02, 0x22, 0x82, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x1f, 0x43, 0x4f, + 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x21, 0x0a, 0x1d, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x24, 0x0a, 0x20, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x49, 0x56, 0x49, + 0x54, 0x59, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x22, 0x9d, 0x01, 0x0a, 0x0c, 0x4d, 0x61, 0x63, + 0x53, 0x65, 0x63, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x4d, 0x41, 0x43, + 0x5f, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x21, 0x4d, 0x41, 0x43, + 0x5f, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x56, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x45, 0x43, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x5f, 0x4f, + 0x50, 0x45, 0x4e, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x45, 0x43, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4e, 0x46, + 0x49, 0x47, 0x55, 0x52, 0x45, 0x44, 0x10, 0x03, 0x22, 0x91, 0x02, 0x0a, 0x16, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x55, 0x0a, 0x09, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xdd, 0x01, 0x0a, + 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x55, 0x0a, 0x09, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, 0x08, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x8e, 0x01, 0x0a, + 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe0, 0x41, 0x01, 0xe2, 0x8c, 0xcf, 0xd7, 0x08, 0x02, + 0x08, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x32, 0xc2, 0x0f, + 0x0a, 0x10, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x12, 0x8a, 0x02, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x12, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0xf7, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x49, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, + 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x4e, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x3f, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 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, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd6, 0x01, 0x0a, 0x0e, 0x4c, 0x69, + 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x3e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 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, 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, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x12, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x41, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x67, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0xfa, 0x01, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x86, + 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, + 0x6f, 0x72, 0x74, 0x22, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0xfc, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0xca, 0x41, + 0x1e, 0x0a, 0x09, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x15, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x32, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x2f, 0x7b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 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, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe1, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0xca, 0x41, 0x2a, 0x0a, + 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 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, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x56, 0xca, 0x41, 0x22, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 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, 0xa6, 0x02, 0x0a, 0x2b, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x42, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5d, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, + 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x69, 0x74, 0x79, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x2f, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x70, 0x62, 0x3b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x70, 0x62, 0xaa, 0x02, 0x27, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x56, 0x31, + 0x42, 0x65, 0x74, 0x61, 0xca, 0x02, 0x27, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0xea, 0x02, + 0x2a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, + 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescOnce sync.Once + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescData = file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDesc +) + +func file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescGZIP() []byte { + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescOnce.Do(func() { + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescData) + }) + return file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDescData +} + +var file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes = make([]protoimpl.EnumInfo, 11) +var file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_goTypes = []any{ + (RemoteTransportProfile_Bandwidth)(0), // 0: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.Bandwidth + (RemoteTransportProfile_ServiceLevelAvailability)(0), // 1: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.ServiceLevelAvailability + (RemoteTransportProfile_KeyProvisioningFlow)(0), // 2: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.KeyProvisioningFlow + (RemoteTransportProfile_State)(0), // 3: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.State + (Transport_Bandwidth)(0), // 4: google.cloud.networkconnectivity.v1beta.Transport.Bandwidth + (Transport_StackType)(0), // 5: google.cloud.networkconnectivity.v1beta.Transport.StackType + (Transport_State)(0), // 6: google.cloud.networkconnectivity.v1beta.Transport.State + (GetStatusResponse_OverallStatus)(0), // 7: google.cloud.networkconnectivity.v1beta.GetStatusResponse.OverallStatus + (GetStatusResponse_OperationalStatus)(0), // 8: google.cloud.networkconnectivity.v1beta.GetStatusResponse.OperationalStatus + (GetStatusResponse_ConnectivityStatus)(0), // 9: google.cloud.networkconnectivity.v1beta.GetStatusResponse.ConnectivityStatus + (GetStatusResponse_MacSecStatus)(0), // 10: google.cloud.networkconnectivity.v1beta.GetStatusResponse.MacSecStatus + (*RemoteTransportProfile)(nil), // 11: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile + (*ListRemoteTransportProfilesRequest)(nil), // 12: google.cloud.networkconnectivity.v1beta.ListRemoteTransportProfilesRequest + (*ListRemoteTransportProfilesResponse)(nil), // 13: google.cloud.networkconnectivity.v1beta.ListRemoteTransportProfilesResponse + (*GetRemoteTransportProfileRequest)(nil), // 14: google.cloud.networkconnectivity.v1beta.GetRemoteTransportProfileRequest + (*Transport)(nil), // 15: google.cloud.networkconnectivity.v1beta.Transport + (*ListTransportsRequest)(nil), // 16: google.cloud.networkconnectivity.v1beta.ListTransportsRequest + (*ListTransportsResponse)(nil), // 17: google.cloud.networkconnectivity.v1beta.ListTransportsResponse + (*GetTransportRequest)(nil), // 18: google.cloud.networkconnectivity.v1beta.GetTransportRequest + (*GetStatusRequest)(nil), // 19: google.cloud.networkconnectivity.v1beta.GetStatusRequest + (*GetStatusResponse)(nil), // 20: google.cloud.networkconnectivity.v1beta.GetStatusResponse + (*CreateTransportRequest)(nil), // 21: google.cloud.networkconnectivity.v1beta.CreateTransportRequest + (*UpdateTransportRequest)(nil), // 22: google.cloud.networkconnectivity.v1beta.UpdateTransportRequest + (*DeleteTransportRequest)(nil), // 23: google.cloud.networkconnectivity.v1beta.DeleteTransportRequest + nil, // 24: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.LabelsEntry + nil, // 25: google.cloud.networkconnectivity.v1beta.Transport.LabelsEntry + (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 27: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 28: google.longrunning.Operation +} +var file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_depIdxs = []int32{ + 24, // 0: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.labels:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.LabelsEntry + 0, // 1: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.supported_bandwidths:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.Bandwidth + 1, // 2: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.sla:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.ServiceLevelAvailability + 2, // 3: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.flow:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.KeyProvisioningFlow + 3, // 4: google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.order_state:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile.State + 11, // 5: google.cloud.networkconnectivity.v1beta.ListRemoteTransportProfilesResponse.remote_transport_profiles:type_name -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile + 26, // 6: google.cloud.networkconnectivity.v1beta.Transport.create_time:type_name -> google.protobuf.Timestamp + 26, // 7: google.cloud.networkconnectivity.v1beta.Transport.update_time:type_name -> google.protobuf.Timestamp + 25, // 8: google.cloud.networkconnectivity.v1beta.Transport.labels:type_name -> google.cloud.networkconnectivity.v1beta.Transport.LabelsEntry + 4, // 9: google.cloud.networkconnectivity.v1beta.Transport.bandwidth:type_name -> google.cloud.networkconnectivity.v1beta.Transport.Bandwidth + 5, // 10: google.cloud.networkconnectivity.v1beta.Transport.stack_type:type_name -> google.cloud.networkconnectivity.v1beta.Transport.StackType + 6, // 11: google.cloud.networkconnectivity.v1beta.Transport.state:type_name -> google.cloud.networkconnectivity.v1beta.Transport.State + 15, // 12: google.cloud.networkconnectivity.v1beta.ListTransportsResponse.transports:type_name -> google.cloud.networkconnectivity.v1beta.Transport + 7, // 13: google.cloud.networkconnectivity.v1beta.GetStatusResponse.overall_status:type_name -> google.cloud.networkconnectivity.v1beta.GetStatusResponse.OverallStatus + 8, // 14: google.cloud.networkconnectivity.v1beta.GetStatusResponse.operational_status:type_name -> google.cloud.networkconnectivity.v1beta.GetStatusResponse.OperationalStatus + 9, // 15: google.cloud.networkconnectivity.v1beta.GetStatusResponse.connectivity_status:type_name -> google.cloud.networkconnectivity.v1beta.GetStatusResponse.ConnectivityStatus + 10, // 16: google.cloud.networkconnectivity.v1beta.GetStatusResponse.mac_sec_status:type_name -> google.cloud.networkconnectivity.v1beta.GetStatusResponse.MacSecStatus + 15, // 17: google.cloud.networkconnectivity.v1beta.CreateTransportRequest.transport:type_name -> google.cloud.networkconnectivity.v1beta.Transport + 27, // 18: google.cloud.networkconnectivity.v1beta.UpdateTransportRequest.update_mask:type_name -> google.protobuf.FieldMask + 15, // 19: google.cloud.networkconnectivity.v1beta.UpdateTransportRequest.transport:type_name -> google.cloud.networkconnectivity.v1beta.Transport + 12, // 20: google.cloud.networkconnectivity.v1beta.TransportManager.ListRemoteTransportProfiles:input_type -> google.cloud.networkconnectivity.v1beta.ListRemoteTransportProfilesRequest + 14, // 21: google.cloud.networkconnectivity.v1beta.TransportManager.GetRemoteTransportProfile:input_type -> google.cloud.networkconnectivity.v1beta.GetRemoteTransportProfileRequest + 16, // 22: google.cloud.networkconnectivity.v1beta.TransportManager.ListTransports:input_type -> google.cloud.networkconnectivity.v1beta.ListTransportsRequest + 18, // 23: google.cloud.networkconnectivity.v1beta.TransportManager.GetTransport:input_type -> google.cloud.networkconnectivity.v1beta.GetTransportRequest + 19, // 24: google.cloud.networkconnectivity.v1beta.TransportManager.GetStatus:input_type -> google.cloud.networkconnectivity.v1beta.GetStatusRequest + 21, // 25: google.cloud.networkconnectivity.v1beta.TransportManager.CreateTransport:input_type -> google.cloud.networkconnectivity.v1beta.CreateTransportRequest + 22, // 26: google.cloud.networkconnectivity.v1beta.TransportManager.UpdateTransport:input_type -> google.cloud.networkconnectivity.v1beta.UpdateTransportRequest + 23, // 27: google.cloud.networkconnectivity.v1beta.TransportManager.DeleteTransport:input_type -> google.cloud.networkconnectivity.v1beta.DeleteTransportRequest + 13, // 28: google.cloud.networkconnectivity.v1beta.TransportManager.ListRemoteTransportProfiles:output_type -> google.cloud.networkconnectivity.v1beta.ListRemoteTransportProfilesResponse + 11, // 29: google.cloud.networkconnectivity.v1beta.TransportManager.GetRemoteTransportProfile:output_type -> google.cloud.networkconnectivity.v1beta.RemoteTransportProfile + 17, // 30: google.cloud.networkconnectivity.v1beta.TransportManager.ListTransports:output_type -> google.cloud.networkconnectivity.v1beta.ListTransportsResponse + 15, // 31: google.cloud.networkconnectivity.v1beta.TransportManager.GetTransport:output_type -> google.cloud.networkconnectivity.v1beta.Transport + 20, // 32: google.cloud.networkconnectivity.v1beta.TransportManager.GetStatus:output_type -> google.cloud.networkconnectivity.v1beta.GetStatusResponse + 28, // 33: google.cloud.networkconnectivity.v1beta.TransportManager.CreateTransport:output_type -> google.longrunning.Operation + 28, // 34: google.cloud.networkconnectivity.v1beta.TransportManager.UpdateTransport:output_type -> google.longrunning.Operation + 28, // 35: google.cloud.networkconnectivity.v1beta.TransportManager.DeleteTransport:output_type -> google.longrunning.Operation + 28, // [28:36] is the sub-list for method output_type + 20, // [20:28] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name +} + +func init() { file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_init() } +func file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_init() { + if File_google_cloud_networkconnectivity_v1beta_transport_manager_proto != nil { + return + } + file_google_cloud_networkconnectivity_v1beta_common_proto_init() + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDesc, + NumEnums: 11, + NumMessages: 15, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_goTypes, + DependencyIndexes: file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_depIdxs, + EnumInfos: file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_enumTypes, + MessageInfos: file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_msgTypes, + }.Build() + File_google_cloud_networkconnectivity_v1beta_transport_manager_proto = out.File + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_rawDesc = nil + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_goTypes = nil + file_google_cloud_networkconnectivity_v1beta_transport_manager_proto_depIdxs = nil +} diff --git a/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager_grpc.pb.go b/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager_grpc.pb.go new file mode 100644 index 000000000000..40ebb53ea859 --- /dev/null +++ b/networkconnectivity/apiv1beta/networkconnectivitypb/transport_manager_grpc.pb.go @@ -0,0 +1,398 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.25.7 +// source: google/cloud/networkconnectivity/v1beta/transport_manager.proto + +package networkconnectivitypb + +import ( + context "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + TransportManager_ListRemoteTransportProfiles_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/ListRemoteTransportProfiles" + TransportManager_GetRemoteTransportProfile_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/GetRemoteTransportProfile" + TransportManager_ListTransports_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/ListTransports" + TransportManager_GetTransport_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/GetTransport" + TransportManager_GetStatus_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/GetStatus" + TransportManager_CreateTransport_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/CreateTransport" + TransportManager_UpdateTransport_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/UpdateTransport" + TransportManager_DeleteTransport_FullMethodName = "/google.cloud.networkconnectivity.v1beta.TransportManager/DeleteTransport" +) + +// TransportManagerClient is the client API for TransportManager 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 TransportManagerClient interface { + // Lists RemoteTransportProfiles in a given project and location. + ListRemoteTransportProfiles(ctx context.Context, in *ListRemoteTransportProfilesRequest, opts ...grpc.CallOption) (*ListRemoteTransportProfilesResponse, error) + // Gets details of a single RemoteTransportProfile. + GetRemoteTransportProfile(ctx context.Context, in *GetRemoteTransportProfileRequest, opts ...grpc.CallOption) (*RemoteTransportProfile, error) + // Lists Transports in a given project and location. + ListTransports(ctx context.Context, in *ListTransportsRequest, opts ...grpc.CallOption) (*ListTransportsResponse, error) + // Gets details of a single Transport. + GetTransport(ctx context.Context, in *GetTransportRequest, opts ...grpc.CallOption) (*Transport, error) + // Gets the operational status of a single Transport. + GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) + // Creates a new Transport in a given project and location. + CreateTransport(ctx context.Context, in *CreateTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Transport. + UpdateTransport(ctx context.Context, in *UpdateTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Transport. + DeleteTransport(ctx context.Context, in *DeleteTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type transportManagerClient struct { + cc grpc.ClientConnInterface +} + +func NewTransportManagerClient(cc grpc.ClientConnInterface) TransportManagerClient { + return &transportManagerClient{cc} +} + +func (c *transportManagerClient) ListRemoteTransportProfiles(ctx context.Context, in *ListRemoteTransportProfilesRequest, opts ...grpc.CallOption) (*ListRemoteTransportProfilesResponse, error) { + out := new(ListRemoteTransportProfilesResponse) + err := c.cc.Invoke(ctx, TransportManager_ListRemoteTransportProfiles_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) GetRemoteTransportProfile(ctx context.Context, in *GetRemoteTransportProfileRequest, opts ...grpc.CallOption) (*RemoteTransportProfile, error) { + out := new(RemoteTransportProfile) + err := c.cc.Invoke(ctx, TransportManager_GetRemoteTransportProfile_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) ListTransports(ctx context.Context, in *ListTransportsRequest, opts ...grpc.CallOption) (*ListTransportsResponse, error) { + out := new(ListTransportsResponse) + err := c.cc.Invoke(ctx, TransportManager_ListTransports_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) GetTransport(ctx context.Context, in *GetTransportRequest, opts ...grpc.CallOption) (*Transport, error) { + out := new(Transport) + err := c.cc.Invoke(ctx, TransportManager_GetTransport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) GetStatus(ctx context.Context, in *GetStatusRequest, opts ...grpc.CallOption) (*GetStatusResponse, error) { + out := new(GetStatusResponse) + err := c.cc.Invoke(ctx, TransportManager_GetStatus_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) CreateTransport(ctx context.Context, in *CreateTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, TransportManager_CreateTransport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) UpdateTransport(ctx context.Context, in *UpdateTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, TransportManager_UpdateTransport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *transportManagerClient) DeleteTransport(ctx context.Context, in *DeleteTransportRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, TransportManager_DeleteTransport_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// TransportManagerServer is the server API for TransportManager service. +// All implementations should embed UnimplementedTransportManagerServer +// for forward compatibility +type TransportManagerServer interface { + // Lists RemoteTransportProfiles in a given project and location. + ListRemoteTransportProfiles(context.Context, *ListRemoteTransportProfilesRequest) (*ListRemoteTransportProfilesResponse, error) + // Gets details of a single RemoteTransportProfile. + GetRemoteTransportProfile(context.Context, *GetRemoteTransportProfileRequest) (*RemoteTransportProfile, error) + // Lists Transports in a given project and location. + ListTransports(context.Context, *ListTransportsRequest) (*ListTransportsResponse, error) + // Gets details of a single Transport. + GetTransport(context.Context, *GetTransportRequest) (*Transport, error) + // Gets the operational status of a single Transport. + GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) + // Creates a new Transport in a given project and location. + CreateTransport(context.Context, *CreateTransportRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Transport. + UpdateTransport(context.Context, *UpdateTransportRequest) (*longrunningpb.Operation, error) + // Deletes a single Transport. + DeleteTransport(context.Context, *DeleteTransportRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedTransportManagerServer should be embedded to have forward compatible implementations. +type UnimplementedTransportManagerServer struct { +} + +func (UnimplementedTransportManagerServer) ListRemoteTransportProfiles(context.Context, *ListRemoteTransportProfilesRequest) (*ListRemoteTransportProfilesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRemoteTransportProfiles not implemented") +} +func (UnimplementedTransportManagerServer) GetRemoteTransportProfile(context.Context, *GetRemoteTransportProfileRequest) (*RemoteTransportProfile, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetRemoteTransportProfile not implemented") +} +func (UnimplementedTransportManagerServer) ListTransports(context.Context, *ListTransportsRequest) (*ListTransportsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListTransports not implemented") +} +func (UnimplementedTransportManagerServer) GetTransport(context.Context, *GetTransportRequest) (*Transport, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetTransport not implemented") +} +func (UnimplementedTransportManagerServer) GetStatus(context.Context, *GetStatusRequest) (*GetStatusResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStatus not implemented") +} +func (UnimplementedTransportManagerServer) CreateTransport(context.Context, *CreateTransportRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateTransport not implemented") +} +func (UnimplementedTransportManagerServer) UpdateTransport(context.Context, *UpdateTransportRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateTransport not implemented") +} +func (UnimplementedTransportManagerServer) DeleteTransport(context.Context, *DeleteTransportRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteTransport not implemented") +} + +// UnsafeTransportManagerServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to TransportManagerServer will +// result in compilation errors. +type UnsafeTransportManagerServer interface { + mustEmbedUnimplementedTransportManagerServer() +} + +func RegisterTransportManagerServer(s grpc.ServiceRegistrar, srv TransportManagerServer) { + s.RegisterService(&TransportManager_ServiceDesc, srv) +} + +func _TransportManager_ListRemoteTransportProfiles_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRemoteTransportProfilesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).ListRemoteTransportProfiles(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_ListRemoteTransportProfiles_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).ListRemoteTransportProfiles(ctx, req.(*ListRemoteTransportProfilesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_GetRemoteTransportProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetRemoteTransportProfileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).GetRemoteTransportProfile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_GetRemoteTransportProfile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).GetRemoteTransportProfile(ctx, req.(*GetRemoteTransportProfileRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_ListTransports_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListTransportsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).ListTransports(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_ListTransports_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).ListTransports(ctx, req.(*ListTransportsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_GetTransport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetTransportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).GetTransport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_GetTransport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).GetTransport(ctx, req.(*GetTransportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_GetStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStatusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).GetStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_GetStatus_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).GetStatus(ctx, req.(*GetStatusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_CreateTransport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateTransportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).CreateTransport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_CreateTransport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).CreateTransport(ctx, req.(*CreateTransportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_UpdateTransport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateTransportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).UpdateTransport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_UpdateTransport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).UpdateTransport(ctx, req.(*UpdateTransportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _TransportManager_DeleteTransport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTransportRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(TransportManagerServer).DeleteTransport(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: TransportManager_DeleteTransport_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(TransportManagerServer).DeleteTransport(ctx, req.(*DeleteTransportRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// TransportManager_ServiceDesc is the grpc.ServiceDesc for TransportManager service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var TransportManager_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.networkconnectivity.v1beta.TransportManager", + HandlerType: (*TransportManagerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListRemoteTransportProfiles", + Handler: _TransportManager_ListRemoteTransportProfiles_Handler, + }, + { + MethodName: "GetRemoteTransportProfile", + Handler: _TransportManager_GetRemoteTransportProfile_Handler, + }, + { + MethodName: "ListTransports", + Handler: _TransportManager_ListTransports_Handler, + }, + { + MethodName: "GetTransport", + Handler: _TransportManager_GetTransport_Handler, + }, + { + MethodName: "GetStatus", + Handler: _TransportManager_GetStatus_Handler, + }, + { + MethodName: "CreateTransport", + Handler: _TransportManager_CreateTransport_Handler, + }, + { + MethodName: "UpdateTransport", + Handler: _TransportManager_UpdateTransport_Handler, + }, + { + MethodName: "DeleteTransport", + Handler: _TransportManager_DeleteTransport_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/networkconnectivity/v1beta/transport_manager.proto", +} diff --git a/networkconnectivity/apiv1beta/policy_based_routing_client.go b/networkconnectivity/apiv1beta/policy_based_routing_client.go new file mode 100644 index 000000000000..806573ab42a6 --- /dev/null +++ b/networkconnectivity/apiv1beta/policy_based_routing_client.go @@ -0,0 +1,711 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "fmt" + "log/slog" + "math" + "net/url" + "time" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + 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" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/proto" +) + +var newPolicyBasedRoutingClientHook clientHook + +// PolicyBasedRoutingCallOptions contains the retry settings for each method of PolicyBasedRoutingClient. +type PolicyBasedRoutingCallOptions struct { + ListPolicyBasedRoutes []gax.CallOption + GetPolicyBasedRoute []gax.CallOption + CreatePolicyBasedRoute []gax.CallOption + DeletePolicyBasedRoute []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultPolicyBasedRoutingGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("networkconnectivity.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("networkconnectivity.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("networkconnectivity.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://networkconnectivity.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultPolicyBasedRoutingCallOptions() *PolicyBasedRoutingCallOptions { + return &PolicyBasedRoutingCallOptions{ + ListPolicyBasedRoutes: []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, + }) + }), + }, + GetPolicyBasedRoute: []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, + }) + }), + }, + CreatePolicyBasedRoute: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeletePolicyBasedRoute: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalPolicyBasedRoutingClient is an interface that defines the methods available from Network Connectivity API. +type internalPolicyBasedRoutingClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListPolicyBasedRoutes(context.Context, *networkconnectivitypb.ListPolicyBasedRoutesRequest, ...gax.CallOption) *PolicyBasedRouteIterator + GetPolicyBasedRoute(context.Context, *networkconnectivitypb.GetPolicyBasedRouteRequest, ...gax.CallOption) (*networkconnectivitypb.PolicyBasedRoute, error) + CreatePolicyBasedRoute(context.Context, *networkconnectivitypb.CreatePolicyBasedRouteRequest, ...gax.CallOption) (*CreatePolicyBasedRouteOperation, error) + CreatePolicyBasedRouteOperation(name string) *CreatePolicyBasedRouteOperation + DeletePolicyBasedRoute(context.Context, *networkconnectivitypb.DeletePolicyBasedRouteRequest, ...gax.CallOption) (*DeletePolicyBasedRouteOperation, error) + DeletePolicyBasedRouteOperation(name string) *DeletePolicyBasedRouteOperation + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// PolicyBasedRoutingClient is a client for interacting with Network Connectivity API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Policy-Based Routing allows GCP customers to specify flexibile routing +// policies for Layer 4 traffic traversing through the connected service. +type PolicyBasedRoutingClient struct { + // The internal transport-dependent client. + internalClient internalPolicyBasedRoutingClient + + // The call options for this service. + CallOptions *PolicyBasedRoutingCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *PolicyBasedRoutingClient) 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 *PolicyBasedRoutingClient) 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 *PolicyBasedRoutingClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListPolicyBasedRoutes lists policy-based routes in a given project and location. +func (c *PolicyBasedRoutingClient) ListPolicyBasedRoutes(ctx context.Context, req *networkconnectivitypb.ListPolicyBasedRoutesRequest, opts ...gax.CallOption) *PolicyBasedRouteIterator { + return c.internalClient.ListPolicyBasedRoutes(ctx, req, opts...) +} + +// GetPolicyBasedRoute gets details of a single policy-based route. +func (c *PolicyBasedRoutingClient) GetPolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.GetPolicyBasedRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.PolicyBasedRoute, error) { + return c.internalClient.GetPolicyBasedRoute(ctx, req, opts...) +} + +// CreatePolicyBasedRoute creates a new policy-based route in a given project and location. +func (c *PolicyBasedRoutingClient) CreatePolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.CreatePolicyBasedRouteRequest, opts ...gax.CallOption) (*CreatePolicyBasedRouteOperation, error) { + return c.internalClient.CreatePolicyBasedRoute(ctx, req, opts...) +} + +// CreatePolicyBasedRouteOperation returns a new CreatePolicyBasedRouteOperation from a given name. +// The name must be that of a previously created CreatePolicyBasedRouteOperation, possibly from a different process. +func (c *PolicyBasedRoutingClient) CreatePolicyBasedRouteOperation(name string) *CreatePolicyBasedRouteOperation { + return c.internalClient.CreatePolicyBasedRouteOperation(name) +} + +// DeletePolicyBasedRoute deletes a single policy-based route. +func (c *PolicyBasedRoutingClient) DeletePolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.DeletePolicyBasedRouteRequest, opts ...gax.CallOption) (*DeletePolicyBasedRouteOperation, error) { + return c.internalClient.DeletePolicyBasedRoute(ctx, req, opts...) +} + +// DeletePolicyBasedRouteOperation returns a new DeletePolicyBasedRouteOperation from a given name. +// The name must be that of a previously created DeletePolicyBasedRouteOperation, possibly from a different process. +func (c *PolicyBasedRoutingClient) DeletePolicyBasedRouteOperation(name string) *DeletePolicyBasedRouteOperation { + return c.internalClient.DeletePolicyBasedRouteOperation(name) +} + +// GetLocation gets information about a location. +func (c *PolicyBasedRoutingClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *PolicyBasedRoutingClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *PolicyBasedRoutingClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *PolicyBasedRoutingClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *PolicyBasedRoutingClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *PolicyBasedRoutingClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *PolicyBasedRoutingClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *PolicyBasedRoutingClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *PolicyBasedRoutingClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// policyBasedRoutingGRPCClient is a client for interacting with Network Connectivity API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type policyBasedRoutingGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing PolicyBasedRoutingClient + CallOptions **PolicyBasedRoutingCallOptions + + // The gRPC API client. + policyBasedRoutingClient networkconnectivitypb.PolicyBasedRoutingServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewPolicyBasedRoutingClient creates a new policy based routing service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Policy-Based Routing allows GCP customers to specify flexibile routing +// policies for Layer 4 traffic traversing through the connected service. +func NewPolicyBasedRoutingClient(ctx context.Context, opts ...option.ClientOption) (*PolicyBasedRoutingClient, error) { + clientOpts := defaultPolicyBasedRoutingGRPCClientOptions() + if newPolicyBasedRoutingClientHook != nil { + hookOpts, err := newPolicyBasedRoutingClientHook(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 := PolicyBasedRoutingClient{CallOptions: defaultPolicyBasedRoutingCallOptions()} + + c := &policyBasedRoutingGRPCClient{ + connPool: connPool, + policyBasedRoutingClient: networkconnectivitypb.NewPolicyBasedRoutingServiceClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *policyBasedRoutingGRPCClient) 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 *policyBasedRoutingGRPCClient) 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 *policyBasedRoutingGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *policyBasedRoutingGRPCClient) ListPolicyBasedRoutes(ctx context.Context, req *networkconnectivitypb.ListPolicyBasedRoutesRequest, opts ...gax.CallOption) *PolicyBasedRouteIterator { + 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).ListPolicyBasedRoutes[0:len((*c.CallOptions).ListPolicyBasedRoutes):len((*c.CallOptions).ListPolicyBasedRoutes)], opts...) + it := &PolicyBasedRouteIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListPolicyBasedRoutesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.PolicyBasedRoute, string, error) { + resp := &networkconnectivitypb.ListPolicyBasedRoutesResponse{} + 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.policyBasedRoutingClient.ListPolicyBasedRoutes, req, settings.GRPC, c.logger, "ListPolicyBasedRoutes") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetPolicyBasedRoutes(), 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 *policyBasedRoutingGRPCClient) GetPolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.GetPolicyBasedRouteRequest, opts ...gax.CallOption) (*networkconnectivitypb.PolicyBasedRoute, 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).GetPolicyBasedRoute[0:len((*c.CallOptions).GetPolicyBasedRoute):len((*c.CallOptions).GetPolicyBasedRoute)], opts...) + var resp *networkconnectivitypb.PolicyBasedRoute + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.policyBasedRoutingClient.GetPolicyBasedRoute, req, settings.GRPC, c.logger, "GetPolicyBasedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *policyBasedRoutingGRPCClient) CreatePolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.CreatePolicyBasedRouteRequest, opts ...gax.CallOption) (*CreatePolicyBasedRouteOperation, 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).CreatePolicyBasedRoute[0:len((*c.CallOptions).CreatePolicyBasedRoute):len((*c.CallOptions).CreatePolicyBasedRoute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.policyBasedRoutingClient.CreatePolicyBasedRoute, req, settings.GRPC, c.logger, "CreatePolicyBasedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreatePolicyBasedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *policyBasedRoutingGRPCClient) DeletePolicyBasedRoute(ctx context.Context, req *networkconnectivitypb.DeletePolicyBasedRouteRequest, opts ...gax.CallOption) (*DeletePolicyBasedRouteOperation, 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).DeletePolicyBasedRoute[0:len((*c.CallOptions).DeletePolicyBasedRoute):len((*c.CallOptions).DeletePolicyBasedRoute)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.policyBasedRoutingClient.DeletePolicyBasedRoute, req, settings.GRPC, c.logger, "DeletePolicyBasedRoute") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeletePolicyBasedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *policyBasedRoutingGRPCClient) 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 *policyBasedRoutingGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *policyBasedRoutingGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.GetIamPolicy, req, settings.GRPC, c.logger, "GetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *policyBasedRoutingGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.SetIamPolicy, req, settings.GRPC, c.logger, "SetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *policyBasedRoutingGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.TestIamPermissions, req, settings.GRPC, c.logger, "TestIamPermissions") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *policyBasedRoutingGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *policyBasedRoutingGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *policyBasedRoutingGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *policyBasedRoutingGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreatePolicyBasedRouteOperation returns a new CreatePolicyBasedRouteOperation from a given name. +// The name must be that of a previously created CreatePolicyBasedRouteOperation, possibly from a different process. +func (c *policyBasedRoutingGRPCClient) CreatePolicyBasedRouteOperation(name string) *CreatePolicyBasedRouteOperation { + return &CreatePolicyBasedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeletePolicyBasedRouteOperation returns a new DeletePolicyBasedRouteOperation from a given name. +// The name must be that of a previously created DeletePolicyBasedRouteOperation, possibly from a different process. +func (c *policyBasedRoutingGRPCClient) DeletePolicyBasedRouteOperation(name string) *DeletePolicyBasedRouteOperation { + return &DeletePolicyBasedRouteOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/networkconnectivity/apiv1beta/policy_based_routing_client_example_go123_test.go b/networkconnectivity/apiv1beta/policy_based_routing_client_example_go123_test.go new file mode 100644 index 000000000000..22f6c0ced257 --- /dev/null +++ b/networkconnectivity/apiv1beta/policy_based_routing_client_example_go123_test.go @@ -0,0 +1,106 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +//go:build go1.23 + +package networkconnectivity_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExamplePolicyBasedRoutingClient_ListPolicyBasedRoutes_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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListPolicyBasedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListPolicyBasedRoutesRequest. + } + for resp, err := range c.ListPolicyBasedRoutes(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExamplePolicyBasedRoutingClient_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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExamplePolicyBasedRoutingClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/networkconnectivity/apiv1beta/policy_based_routing_client_example_test.go b/networkconnectivity/apiv1beta/policy_based_routing_client_example_test.go new file mode 100644 index 000000000000..4159042bba0c --- /dev/null +++ b/networkconnectivity/apiv1beta/policy_based_routing_client_example_test.go @@ -0,0 +1,410 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity_test + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewPolicyBasedRoutingClient() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExamplePolicyBasedRoutingClient_CreatePolicyBasedRoute() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreatePolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreatePolicyBasedRouteRequest. + } + op, err := c.CreatePolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_DeletePolicyBasedRoute() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeletePolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeletePolicyBasedRouteRequest. + } + op, err := c.DeletePolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExamplePolicyBasedRoutingClient_GetPolicyBasedRoute() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetPolicyBasedRouteRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetPolicyBasedRouteRequest. + } + resp, err := c.GetPolicyBasedRoute(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_ListPolicyBasedRoutes() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListPolicyBasedRoutesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListPolicyBasedRoutesRequest. + } + it := c.ListPolicyBasedRoutes(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.(*networkconnectivitypb.ListPolicyBasedRoutesResponse) + } +} + +func ExamplePolicyBasedRoutingClient_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 := networkconnectivity.NewPolicyBasedRoutingClient(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 ExamplePolicyBasedRoutingClient_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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExamplePolicyBasedRoutingClient_GetIamPolicy() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_SetIamPolicy() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_TestIamPermissions() { + 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 := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExamplePolicyBasedRoutingClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExamplePolicyBasedRoutingClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExamplePolicyBasedRoutingClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewPolicyBasedRoutingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/networkconnectivity/apiv1beta/transport_manager_client.go b/networkconnectivity/apiv1beta/transport_manager_client.go new file mode 100644 index 000000000000..3266fe380289 --- /dev/null +++ b/networkconnectivity/apiv1beta/transport_manager_client.go @@ -0,0 +1,893 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity + +import ( + "context" + "fmt" + "log/slog" + "math" + "net/url" + "time" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + 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" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/proto" +) + +var newTransportManagerClientHook clientHook + +// TransportManagerCallOptions contains the retry settings for each method of TransportManagerClient. +type TransportManagerCallOptions struct { + ListRemoteTransportProfiles []gax.CallOption + GetRemoteTransportProfile []gax.CallOption + ListTransports []gax.CallOption + GetTransport []gax.CallOption + GetStatus []gax.CallOption + CreateTransport []gax.CallOption + UpdateTransport []gax.CallOption + DeleteTransport []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultTransportManagerGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("networkconnectivity.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("networkconnectivity.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("networkconnectivity.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://networkconnectivity.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + internaloption.EnableNewAuthLibrary(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultTransportManagerCallOptions() *TransportManagerCallOptions { + return &TransportManagerCallOptions{ + ListRemoteTransportProfiles: []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, + }) + }), + }, + GetRemoteTransportProfile: []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, + }) + }), + }, + ListTransports: []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, + }) + }), + }, + GetTransport: []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, + }) + }), + }, + GetStatus: []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, + }) + }), + }, + CreateTransport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + UpdateTransport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteTransport: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalTransportManagerClient is an interface that defines the methods available from Network Connectivity API. +type internalTransportManagerClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListRemoteTransportProfiles(context.Context, *networkconnectivitypb.ListRemoteTransportProfilesRequest, ...gax.CallOption) *RemoteTransportProfileIterator + GetRemoteTransportProfile(context.Context, *networkconnectivitypb.GetRemoteTransportProfileRequest, ...gax.CallOption) (*networkconnectivitypb.RemoteTransportProfile, error) + ListTransports(context.Context, *networkconnectivitypb.ListTransportsRequest, ...gax.CallOption) *TransportIterator + GetTransport(context.Context, *networkconnectivitypb.GetTransportRequest, ...gax.CallOption) (*networkconnectivitypb.Transport, error) + GetStatus(context.Context, *networkconnectivitypb.GetStatusRequest, ...gax.CallOption) (*networkconnectivitypb.GetStatusResponse, error) + CreateTransport(context.Context, *networkconnectivitypb.CreateTransportRequest, ...gax.CallOption) (*CreateTransportOperation, error) + CreateTransportOperation(name string) *CreateTransportOperation + UpdateTransport(context.Context, *networkconnectivitypb.UpdateTransportRequest, ...gax.CallOption) (*UpdateTransportOperation, error) + UpdateTransportOperation(name string) *UpdateTransportOperation + DeleteTransport(context.Context, *networkconnectivitypb.DeleteTransportRequest, ...gax.CallOption) (*DeleteTransportOperation, error) + DeleteTransportOperation(name string) *DeleteTransportOperation + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator +} + +// TransportManagerClient is a client for interacting with Network Connectivity API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The CLH based service for managing RemoteTransportProfiles and Transports. +type TransportManagerClient struct { + // The internal transport-dependent client. + internalClient internalTransportManagerClient + + // The call options for this service. + CallOptions *TransportManagerCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *TransportManagerClient) 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 *TransportManagerClient) 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 *TransportManagerClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListRemoteTransportProfiles lists RemoteTransportProfiles in a given project and location. +func (c *TransportManagerClient) ListRemoteTransportProfiles(ctx context.Context, req *networkconnectivitypb.ListRemoteTransportProfilesRequest, opts ...gax.CallOption) *RemoteTransportProfileIterator { + return c.internalClient.ListRemoteTransportProfiles(ctx, req, opts...) +} + +// GetRemoteTransportProfile gets details of a single RemoteTransportProfile. +func (c *TransportManagerClient) GetRemoteTransportProfile(ctx context.Context, req *networkconnectivitypb.GetRemoteTransportProfileRequest, opts ...gax.CallOption) (*networkconnectivitypb.RemoteTransportProfile, error) { + return c.internalClient.GetRemoteTransportProfile(ctx, req, opts...) +} + +// ListTransports lists Transports in a given project and location. +func (c *TransportManagerClient) ListTransports(ctx context.Context, req *networkconnectivitypb.ListTransportsRequest, opts ...gax.CallOption) *TransportIterator { + return c.internalClient.ListTransports(ctx, req, opts...) +} + +// GetTransport gets details of a single Transport. +func (c *TransportManagerClient) GetTransport(ctx context.Context, req *networkconnectivitypb.GetTransportRequest, opts ...gax.CallOption) (*networkconnectivitypb.Transport, error) { + return c.internalClient.GetTransport(ctx, req, opts...) +} + +// GetStatus gets the operational status of a single Transport. +func (c *TransportManagerClient) GetStatus(ctx context.Context, req *networkconnectivitypb.GetStatusRequest, opts ...gax.CallOption) (*networkconnectivitypb.GetStatusResponse, error) { + return c.internalClient.GetStatus(ctx, req, opts...) +} + +// CreateTransport creates a new Transport in a given project and location. +func (c *TransportManagerClient) CreateTransport(ctx context.Context, req *networkconnectivitypb.CreateTransportRequest, opts ...gax.CallOption) (*CreateTransportOperation, error) { + return c.internalClient.CreateTransport(ctx, req, opts...) +} + +// CreateTransportOperation returns a new CreateTransportOperation from a given name. +// The name must be that of a previously created CreateTransportOperation, possibly from a different process. +func (c *TransportManagerClient) CreateTransportOperation(name string) *CreateTransportOperation { + return c.internalClient.CreateTransportOperation(name) +} + +// UpdateTransport updates the parameters of a single Transport. +func (c *TransportManagerClient) UpdateTransport(ctx context.Context, req *networkconnectivitypb.UpdateTransportRequest, opts ...gax.CallOption) (*UpdateTransportOperation, error) { + return c.internalClient.UpdateTransport(ctx, req, opts...) +} + +// UpdateTransportOperation returns a new UpdateTransportOperation from a given name. +// The name must be that of a previously created UpdateTransportOperation, possibly from a different process. +func (c *TransportManagerClient) UpdateTransportOperation(name string) *UpdateTransportOperation { + return c.internalClient.UpdateTransportOperation(name) +} + +// DeleteTransport deletes a single Transport. +func (c *TransportManagerClient) DeleteTransport(ctx context.Context, req *networkconnectivitypb.DeleteTransportRequest, opts ...gax.CallOption) (*DeleteTransportOperation, error) { + return c.internalClient.DeleteTransport(ctx, req, opts...) +} + +// DeleteTransportOperation returns a new DeleteTransportOperation from a given name. +// The name must be that of a previously created DeleteTransportOperation, possibly from a different process. +func (c *TransportManagerClient) DeleteTransportOperation(name string) *DeleteTransportOperation { + return c.internalClient.DeleteTransportOperation(name) +} + +// GetLocation gets information about a location. +func (c *TransportManagerClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +// This method can be called in two ways: +// +// List all public locations: Use the path GET /v1/locations. +// +// List project-visible locations: Use the path +// GET /v1/projects/{project_id}/locations. This may include public +// locations as well as private or other locations specifically visible +// to the project. +func (c *TransportManagerClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *TransportManagerClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *TransportManagerClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *TransportManagerClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *TransportManagerClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *TransportManagerClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *TransportManagerClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *TransportManagerClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// transportManagerGRPCClient is a client for interacting with Network Connectivity API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type transportManagerGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing TransportManagerClient + CallOptions **TransportManagerCallOptions + + // The gRPC API client. + transportManagerClient networkconnectivitypb.TransportManagerClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string + + logger *slog.Logger +} + +// NewTransportManagerClient creates a new transport manager client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The CLH based service for managing RemoteTransportProfiles and Transports. +func NewTransportManagerClient(ctx context.Context, opts ...option.ClientOption) (*TransportManagerClient, error) { + clientOpts := defaultTransportManagerGRPCClientOptions() + if newTransportManagerClientHook != nil { + hookOpts, err := newTransportManagerClientHook(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 := TransportManagerClient{CallOptions: defaultTransportManagerCallOptions()} + + c := &transportManagerGRPCClient{ + connPool: connPool, + transportManagerClient: networkconnectivitypb.NewTransportManagerClient(connPool), + CallOptions: &client.CallOptions, + logger: internaloption.GetLogger(opts), + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *transportManagerGRPCClient) 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 *transportManagerGRPCClient) 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 *transportManagerGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *transportManagerGRPCClient) ListRemoteTransportProfiles(ctx context.Context, req *networkconnectivitypb.ListRemoteTransportProfilesRequest, opts ...gax.CallOption) *RemoteTransportProfileIterator { + 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).ListRemoteTransportProfiles[0:len((*c.CallOptions).ListRemoteTransportProfiles):len((*c.CallOptions).ListRemoteTransportProfiles)], opts...) + it := &RemoteTransportProfileIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListRemoteTransportProfilesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.RemoteTransportProfile, string, error) { + resp := &networkconnectivitypb.ListRemoteTransportProfilesResponse{} + 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.transportManagerClient.ListRemoteTransportProfiles, req, settings.GRPC, c.logger, "ListRemoteTransportProfiles") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetRemoteTransportProfiles(), 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 *transportManagerGRPCClient) GetRemoteTransportProfile(ctx context.Context, req *networkconnectivitypb.GetRemoteTransportProfileRequest, opts ...gax.CallOption) (*networkconnectivitypb.RemoteTransportProfile, 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).GetRemoteTransportProfile[0:len((*c.CallOptions).GetRemoteTransportProfile):len((*c.CallOptions).GetRemoteTransportProfile)], opts...) + var resp *networkconnectivitypb.RemoteTransportProfile + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.GetRemoteTransportProfile, req, settings.GRPC, c.logger, "GetRemoteTransportProfile") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) ListTransports(ctx context.Context, req *networkconnectivitypb.ListTransportsRequest, opts ...gax.CallOption) *TransportIterator { + 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).ListTransports[0:len((*c.CallOptions).ListTransports):len((*c.CallOptions).ListTransports)], opts...) + it := &TransportIterator{} + req = proto.Clone(req).(*networkconnectivitypb.ListTransportsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*networkconnectivitypb.Transport, string, error) { + resp := &networkconnectivitypb.ListTransportsResponse{} + 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.transportManagerClient.ListTransports, req, settings.GRPC, c.logger, "ListTransports") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetTransports(), 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 *transportManagerGRPCClient) GetTransport(ctx context.Context, req *networkconnectivitypb.GetTransportRequest, opts ...gax.CallOption) (*networkconnectivitypb.Transport, 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).GetTransport[0:len((*c.CallOptions).GetTransport):len((*c.CallOptions).GetTransport)], opts...) + var resp *networkconnectivitypb.Transport + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.GetTransport, req, settings.GRPC, c.logger, "GetTransport") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) GetStatus(ctx context.Context, req *networkconnectivitypb.GetStatusRequest, opts ...gax.CallOption) (*networkconnectivitypb.GetStatusResponse, 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).GetStatus[0:len((*c.CallOptions).GetStatus):len((*c.CallOptions).GetStatus)], opts...) + var resp *networkconnectivitypb.GetStatusResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.GetStatus, req, settings.GRPC, c.logger, "GetStatus") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) CreateTransport(ctx context.Context, req *networkconnectivitypb.CreateTransportRequest, opts ...gax.CallOption) (*CreateTransportOperation, 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).CreateTransport[0:len((*c.CallOptions).CreateTransport):len((*c.CallOptions).CreateTransport)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.CreateTransport, req, settings.GRPC, c.logger, "CreateTransport") + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *transportManagerGRPCClient) UpdateTransport(ctx context.Context, req *networkconnectivitypb.UpdateTransportRequest, opts ...gax.CallOption) (*UpdateTransportOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "transport.name", url.QueryEscape(req.GetTransport().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateTransport[0:len((*c.CallOptions).UpdateTransport):len((*c.CallOptions).UpdateTransport)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.UpdateTransport, req, settings.GRPC, c.logger, "UpdateTransport") + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *transportManagerGRPCClient) DeleteTransport(ctx context.Context, req *networkconnectivitypb.DeleteTransportRequest, opts ...gax.CallOption) (*DeleteTransportOperation, 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).DeleteTransport[0:len((*c.CallOptions).DeleteTransport):len((*c.CallOptions).DeleteTransport)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.transportManagerClient.DeleteTransport, req, settings.GRPC, c.logger, "DeleteTransport") + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *transportManagerGRPCClient) 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 *transportManagerGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.locationsClient.ListLocations, req, settings.GRPC, c.logger, "ListLocations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *transportManagerGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.GetIamPolicy, req, settings.GRPC, c.logger, "GetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.SetIamPolicy, req, settings.GRPC, c.logger, "SetIamPolicy") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.iamPolicyClient.TestIamPermissions, req, settings.GRPC, c.logger, "TestIamPermissions") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.CancelOperation, req, settings.GRPC, c.logger, "CancelOperation") + return err + }, opts...) + return err +} + +func (c *transportManagerGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = executeRPC(ctx, c.operationsClient.DeleteOperation, req, settings.GRPC, c.logger, "DeleteOperation") + return err + }, opts...) + return err +} + +func (c *transportManagerGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.GetOperation, req, settings.GRPC, c.logger, "GetOperation") + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *transportManagerGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = executeRPC(ctx, c.operationsClient.ListOperations, req, settings.GRPC, c.logger, "ListOperations") + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateTransportOperation returns a new CreateTransportOperation from a given name. +// The name must be that of a previously created CreateTransportOperation, possibly from a different process. +func (c *transportManagerGRPCClient) CreateTransportOperation(name string) *CreateTransportOperation { + return &CreateTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteTransportOperation returns a new DeleteTransportOperation from a given name. +// The name must be that of a previously created DeleteTransportOperation, possibly from a different process. +func (c *transportManagerGRPCClient) DeleteTransportOperation(name string) *DeleteTransportOperation { + return &DeleteTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateTransportOperation returns a new UpdateTransportOperation from a given name. +// The name must be that of a previously created UpdateTransportOperation, possibly from a different process. +func (c *transportManagerGRPCClient) UpdateTransportOperation(name string) *UpdateTransportOperation { + return &UpdateTransportOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/networkconnectivity/apiv1beta/transport_manager_client_example_go123_test.go b/networkconnectivity/apiv1beta/transport_manager_client_example_go123_test.go new file mode 100644 index 000000000000..79ff0aa616b5 --- /dev/null +++ b/networkconnectivity/apiv1beta/transport_manager_client_example_go123_test.go @@ -0,0 +1,132 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +//go:build go1.23 + +package networkconnectivity_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleTransportManagerClient_ListRemoteTransportProfiles_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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRemoteTransportProfilesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRemoteTransportProfilesRequest. + } + for resp, err := range c.ListRemoteTransportProfiles(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleTransportManagerClient_ListTransports_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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListTransportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListTransportsRequest. + } + for resp, err := range c.ListTransports(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleTransportManagerClient_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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + for resp, err := range c.ListLocations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleTransportManagerClient_ListOperations_all() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + for resp, err := range c.ListOperations(ctx, req).All() { + if err != nil { + // TODO: Handle error and break/return/continue. Iteration will stop after any error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/networkconnectivity/apiv1beta/transport_manager_client_example_test.go b/networkconnectivity/apiv1beta/transport_manager_client_example_test.go new file mode 100644 index 000000000000..4388f336003e --- /dev/null +++ b/networkconnectivity/apiv1beta/transport_manager_client_example_test.go @@ -0,0 +1,527 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package networkconnectivity_test + +import ( + "context" + + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + networkconnectivity "cloud.google.com/go/networkconnectivity/apiv1beta" + networkconnectivitypb "cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewTransportManagerClient() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleTransportManagerClient_CreateTransport() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.CreateTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#CreateTransportRequest. + } + op, err := c.CreateTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_DeleteTransport() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.DeleteTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#DeleteTransportRequest. + } + op, err := c.DeleteTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleTransportManagerClient_GetRemoteTransportProfile() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetRemoteTransportProfileRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetRemoteTransportProfileRequest. + } + resp, err := c.GetRemoteTransportProfile(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_GetStatus() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetStatusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetStatusRequest. + } + resp, err := c.GetStatus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_GetTransport() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.GetTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#GetTransportRequest. + } + resp, err := c.GetTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_ListRemoteTransportProfiles() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListRemoteTransportProfilesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListRemoteTransportProfilesRequest. + } + it := c.ListRemoteTransportProfiles(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.(*networkconnectivitypb.ListRemoteTransportProfilesResponse) + } +} + +func ExampleTransportManagerClient_ListTransports() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.ListTransportsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#ListTransportsRequest. + } + it := c.ListTransports(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.(*networkconnectivitypb.ListTransportsResponse) + } +} + +func ExampleTransportManagerClient_UpdateTransport() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &networkconnectivitypb.UpdateTransportRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/networkconnectivity/apiv1beta/networkconnectivitypb#UpdateTransportRequest. + } + op, err := c.UpdateTransport(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_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 := networkconnectivity.NewTransportManagerClient(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 ExampleTransportManagerClient_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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*locationpb.ListLocationsResponse) + } +} + +func ExampleTransportManagerClient_GetIamPolicy() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_SetIamPolicy() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_TestIamPermissions() { + 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 := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleTransportManagerClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleTransportManagerClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleTransportManagerClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := networkconnectivity.NewTransportManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + + // If you need to access the underlying RPC response, + // you can do so by casting the `Response` as below. + // Otherwise, remove this line. Only populated after + // first call to Next(). Not safe for concurrent access. + _ = it.Response.(*longrunningpb.ListOperationsResponse) + } +} diff --git a/networkconnectivity/apiv1beta/version.go b/networkconnectivity/apiv1beta/version.go new file mode 100644 index 000000000000..9ba12c431c3b --- /dev/null +++ b/networkconnectivity/apiv1beta/version.go @@ -0,0 +1,23 @@ +// Copyright 2026 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by gapicgen. DO NOT EDIT. + +package networkconnectivity + +import "cloud.google.com/go/networkconnectivity/internal" + +func init() { + versionClient = internal.Version +}